Image Processing Reference
We will use the second formula to calculate the dot product. To determine if a pixel C with
coordinates ( Cx , Cy ) is above the user-specified line, which is defined by points A and B with
coordinates ( Ax , Ay ) and ( Bx , By ) respectively, we need to do the following, as illustrated in Fig-
ure 2 .
FIGURE 2 Using dot product to determining if a point is over or below a user-specified line.
First we need to find the vector that is perpendicular to the line that is defined by points A
and B ; we will call it vector D . We then need to find the vector E that is equal to the diference
of vectors C and A . If the dot product of D and E is greater than 0, point C is above the line
defined by points A and B . If it is equal to 0, point C is right on the line, otherwise point C is
below the line. The parallel algorithm in pseudo-code is shown in Pseudo-code 5.
4.3 Line Crossing Detector
Line Crossing Detector is a similar algorithm to Over a Line Detector.
//one thread for each pixel
foreach pixel p do
color_diff = prev_color(p) - curr_color(p)
// square of different
color_diff *= color_diff
// update previous color
prev_color(p) = curr_color(p)
// empirically chosen value.
// can be adjusted to make detector more
// or less sensitive to changes.
threshold = 5000
Cx = p.getXcoordinates()