wk 2/3 Flashcards
What is a first derivative operator
A filter or function used for edge detection by using the first derivative wrt intensity change of an image
What is a second derivative operator
An operator which aims to find edges by finding the second derivative of the image then applying zero crossing to find edges
What is the intuitive approach to finding the first derivative edges of an image. what is the first problem that appears and how is it solved (despite other shortcomings)
Approximate the gradient by e.g. f[ i, j+1] - f[ i, j].
These can be put into convolutional filter form [-1, 1] and [ [ 1 ], [ -1 ] ].
These however find the gradient at interpolated points of i, j + 1/2 and i +1/2, j respectively. Consequently we combine these filters into 2d filters to find gradient at the same location of i + 1/2 and j + 1/2
[[ -1, 1 ], [ -1, 1 ] ] = G_x
[[ 1, 1 ], [ -1, -1 ] ] = G_y
What are the 4 steps to edge detection
Filtering:
-removing noise e.g. Gaussian
Enhancement:
-methods to increase edge detector performance e.g. laplacian or normalization of image, increasing intensity etc
Detection:
-Thresholding or zero crossing etc
Localization: determining the actual position of an edge
Compare Roberts and Sobel Filter
Roberts:
- 2x2 filter
- calculates interpolated gradient at i +1/2, j +1/2 rather than the gradient at the actual pixel location
-does not take the entire neighbourhood of the pixels into account
Sobel:
- 3x3 filter
- calculates the approximated gradient at exact location i,j
- takes the full neighbourhood of the pixel into account
- emphasises the pixels nearer the centre of the filter
What are second derivative filters
- take the second derivative of the images intensity map
- the result of the second derivative are two zero crossed lines at areas of the greatest intensity change (local maxima)
-points at zero crossing are more or less considered edges
What is the Laplacian operator
it is derived from taking the second derivative of the x and y magnitude matrices with respect to x and y components respectively. This gives the 3x3 Laplacian operator
To find edges it can be convolved with the image to be edged
What is a problem with the laplacian
It is very sensitive to noise and can therefore create many false edges
what are the 2 solutions to laplacians noise problem
-Threshold zerocrossing
-Image smoothing e.g. Gaussian / Laplacian of Gaussian
what is the gaussian filter, what are its key advantages
-It is a smoothing filter which fits surrounding pixels to a normal distribution depending on parameters
-noise is likely to be on the edges of the images normaly distributed pixels so it is very effective at removing noise
-it is seperable to 1 dimensions from 2d so it can be implemented very efficiently
-it is symmetric meaning its rotation wont make a difference and it smoothes in all directions equally
How does laplacian of gaussian implement the 4 steps to edge detection
1) filtering -> Gaussian convolved
2) enhancement -> Laplacian in 2 dimensions accentuates local maxima
3) detection: zero crossing
4) localization: sub-pixel reconstruction and linear interpolation
How do you make the LoG operator
convolve a 2d gaussian with a Laplacian
Using LoG how do we do edge detection explicitly
- create LoG filter by convolving the gaussian with the Laplacian
-Convolve the LoG operator with the image
-Zero cross the resulting image
What is a more efficient way to apply smoothing when dealing with a large gaussian filter, large image or both
Decompose the Gaussian filter into x and y components ( 1 dimensional Gaussians) and convolve the image one by one with the x and y Gaussian components. This is more efficient then convolving with 2-dimensional Gaussians
What is the difference between how 1st derivative operators work compared to 2 derivative
1st derivative operators find first derivative, choose some threshold, and assume all magnitudes of first derivative image map above the threshold are edges
2 derivative operators find only points with a local maxima (by zero crossing) and consider them edges