Roberts Cross Operator (Diagonal)
2x2 operator that looks for diagonal gradient
Prewitt Operator (3x3) (Horizontal & Vertical)
Similar to Sobel in that it uses two 3 x 3 kernels.
One for changes in the horizontal direction, and one for changes in the vertical direction.
The two kernels are convolved with the original image to calculate the approximations of the derivatives.
Sobel Operator (Horizontal & Vertical)
Calculates the gradient of image intensity at each pixel within the image.
The result shows how abruptly or smoothly the image changes at each pixel, and therefore how likely it is that that pixel represents an edge.
Prewitt Operator (4x4) (Horizontal & Vertical)
Similar to Prewitt (3x3)
Covers a larger area, where the focus is not necessarily on immediate pixels but others contributing to the edge change.
Canny Edge Detector Assumption
Linear filtering and additive Gaussian noise.
Canny Edge Detector Properties
Edge detector should have:
Canny Edge Detector Process - 1. Gradient Direction Identification
Uses filter based on first derivative of a Gaussian, because Canny is susceptible to noise present in raw image data. Therefore:
Canny Edge Detector Process - 2. Edge Detection
Using the gradient directions, we can start to detect edges:
Effect of Gaussian kernel (σ) size on the Canny Detector algorithm
Choice of σ depends on desired behaviour where:
Hough Transform (HT) Purpose
Detects a line using a “voting” scheme, where points vote for a set of parameters that describe a line. The more votes for a particular set, the more evidence that the corresponding line is present in the image. So, the HT can detect MULTIPLE lines in one shot.
Hough Transform (HT) Process
Finding Curved Line with Hough Transform
For circles:
Instead of the equation for a straight line (y=mx+b), we can use the equation of a circle r2 = (x-h)^2 + (y-k)^2 and translate it to d = xcos(Ѳ) + ysin(Ѳ) where d is the perpendicular distance from the line to the origin and Ѳ is the angle this perpendicular makes with the x-axis.
For each point in the image ( given by [x,y] ), we can initialise H[d,Ѳ] = 0 for Ѳ values in the range (0,180). From there we can find the value(s) of (d, Ѳ) where H[d, Ѳ] is a maximum.
The Hough transform can then be generalized to detect any curve which can be expressed in parametric form i.e., Y = f(x, a1, a2, …an ). This essentially reduces it into some simple space of parameters and asks how many points in the image would conform to that?
Corner detection
• Corners contain more edges than lines
• A point on a line is hard to match, while corners are easier.
• Edge detectors tend to fail at corners
• By intuition corner:
1. Right at corner gradient is ill defined
2. Near corner, gradient has two different values.
To detect corners:
Local Features Definition
Matching points across images important for recognition and pose estimation.
A good local image feature to track should:
Q: Depth values in a stereo pair of images
Q: Lukas Kanade Algorithm: Optical flow points in two successive frames of video
Q: Describe how depth can be calculated from optical flow
Harris detector
Hint: Eigenvalues.
Captures structure of local neighbourhood using an auto-correlation matrix, where:
* 2 strong eigenvalues = good local feature. * 1 strong eigenvalue = contour. * 0 = uniform region.
Measures quality of a feature – because the best feature points can be thresholded on the eigenvalues.
SIFT (Scale-invariant Feature Transform)
Comparison of Harris Detector and SIFT algorithms
Erosion
Removes outside pixels of a region/blob (and internal holes/regions) usually using a convolution kernel/Mask and an AND operation (or subtracts the convolution of the kernel with the image).
Erosion Effect
Removes small details such as thin lines, noise point, and widens gaps. Shrinks a region to a skeleton with successive erosions.
Dilation
Adds pixels to the outside of a region/blob using a convolution kernel and an OR operation (or adds the convolution of the kernel with the image).