580 likes | 591 Views
VC 17/18 – TP7 Spatial Filters. Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos. Miguel Tavares Coimbra. Outline. Spatial filters Frequency domain filtering Edge detection. Topic: Spatial filters. Spatial filters
E N D
VC 17/18 – TP7Spatial Filters Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos Miguel Tavares Coimbra
Outline • Spatial filters • Frequency domain filtering • Edge detection VC 17/18 - TP7 - Spatial Filters
Topic: Spatial filters • Spatial filters • Frequency domain filtering • Edge detection VC 17/18 - TP7 - Spatial Filters
Images are Discrete and Finite Convolution Fourier Transform Inverse Fourier Transform VC 17/18 - TP7 - Spatial Filters
Simple way to process an image. Mask defines the processing function. Corresponds to a multiplication in frequency domain. Spatial Mask Mask Image Convolution – Mask ‘slides’ over the image VC 17/18 - TP7 - Spatial Filters
Each mask position has weight w. The result of the operation for each pixel is given by: Example Mask Image =1*2+2*2+1*2+… =8+0-20 =-12 VC 17/18 - TP7 - Spatial Filters
Definitions • Spatial filters • Use a mask (kernel) over an image region. • Work directly with pixels. • As opposed to: Frequency filters. • Advantages • Simple implementation: convolution with the kernel function. • Different masks offer a large variety of functionalities. VC 17/18 - TP7 - Spatial Filters
For n=2, convolve pixel values with 2D images: 1 1 1 2 1 then (a) use or (b) use 1 1 1 2 2 2 1 1 1 2 2 4 2 2 1 2 1 1 1 Averaging Let’s think about averaging pixel values Which is faster? VC 17/18 - TP7 - Spatial Filters
large Repeated averaging Gaussian smoothing Averaging The convolution kernel VC 17/18 - TP7 - Spatial Filters
pixels Filter size …can be very large 2D Gaussian is separable! Gaussian Smoothing Gaussiankernel (truncate, if necessary) Use two 1DGaussianFilters! VC 17/18 - TP7 - Spatial Filters
Gaussian Smoothing • A Gaussian kernel gives less weight to pixels further from the center of the window • This kernel is an approximation of a Gaussian function: VC 17/18 - TP7 - Spatial Filters
original VC 17/18 - TP7 - Spatial Filters
Mean Filtering • We are degrading the energy of the high spatial frequencies of an image (low-pass filtering). • Makes the image ‘smoother’. • Used in noise reduction. • Can be implemented with spatial masks or in the frequency domain. VC 17/18 - TP7 - Spatial Filters
Mean filter Gaussian filter VC 17/18 - TP7 - Spatial Filters
VC 17/18 - TP7 - Spatial Filters http://www.michaelbach.de/ot/cog_blureffects/index.html
VC 17/18 - TP7 - Spatial Filters http://www.michaelbach.de/ot/cog_blureffects/index.html
Median filtering sort median Median Filter (a) • Smoothing is averaging (a) Blurs edges (b) Sensitive to outliers (b) • Sort values around the pixel • Select middle value (median) • Non-linear (Cannot be implemented with convolution) VC 17/18 - TP7 - Spatial Filters
Gaussian noise Salt and pepper noise 3x3 5x5 7x7 VC 17/18 - TP7 - Spatial Filters
What a computer sees Border Problem How do we apply our mask to this pixel? VC 17/18 - TP7 - Spatial Filters
Border Problem • Ignore • Output image will be smaller than original • Pad with constant values • Can introduce substantial 1st order derivative values • Pad with reflection • Can introduce substantial 2nd order derivative values VC 17/18 - TP7 - Spatial Filters
Topic: Frequency domain filtering • Spatial filters • Frequency domain filtering • Edge detection VC 17/18 - TP7 - Spatial Filters
Image Processing in the Fourier Domain Magnitude of the FT Does not look anything like what we have seen VC 17/18 - TP7 - Spatial Filters
Convolution in the Frequency Domain |F(sx,sy)| f(x,y) h(x,y) |H(sx,sy)| g(x,y) |G(sx,sy)| VC 17/18 - TP7 - Spatial Filters
Low-pass Filtering Lets the low frequencies pass and eliminates the high frequencies. Generates image with overall shading, but not much detail VC 17/18 - TP7 - Spatial Filters
High-pass Filtering Lets through the high frequencies (the detail), but eliminates the low frequencies (the overall shape). It acts like an edge enhancer. VC 17/18 - TP7 - Spatial Filters
Boosting High Frequencies VC 17/18 - TP7 - Spatial Filters
The Ringing Effect An ideal low-pass filter causes ‘rings’ in the spatial domain! http://homepages.inf.ed.ac.uk/rbf/HIPR2/freqfilt.htm VC 17/18 - TP7 - Spatial Filters
Topic: Edge detection • Spatial filters • Frequency domain filtering • Edge detection VC 17/18 - TP7 - Spatial Filters
Convert a 2D image into a set of curves Extracts salient features of the scene More compact than pixels Edge Detection VC 17/18 - TP7 - Spatial Filters
Edges are caused by a variety of factors Origin of Edges surface normal discontinuity depth discontinuity surface color discontinuity illumination discontinuity VC 17/18 - TP7 - Spatial Filters
How can you tell that a pixel is on an edge? VC 17/18 - TP7 - Spatial Filters
Edge Types Step Edges Line Edges Roof Edge VC 17/18 - TP7 - Spatial Filters
Edge Magnitude Edge Orientation High Detection Rate and Good Localization Real Edges Noisy and Discrete! We want an Edge Operator that produces: VC 17/18 - TP7 - Spatial Filters
Gradient • Gradient equation: • Represents direction of most rapid change in intensity • Gradient direction: • The edge strength is givenby the gradient magnitude VC 17/18 - TP7 - Spatial Filters
Ideal edge Unit step function: Image intensity (brightness): Theory of Edge Detection VC 17/18 - TP7 - Spatial Filters
Partial derivatives (gradients): • Squared gradient: Edge Magnitude: (normal of the edge) Edge Orientation: Rotationally symmetric, non-linear operator Theory of Edge Detection VC 17/18 - TP7 - Spatial Filters
Laplacian: Rotationally symmetric, linear operator zero-crossing Theory of Edge Detection VC 17/18 - TP7 - Spatial Filters
Discrete Edge Operators • How can we differentiate a discrete image? Finite difference approximations: Convolution masks : VC 17/18 - TP7 - Spatial Filters
Second order partial derivatives: • Laplacian : Convolution masks : or Discrete Edge Operators (more accurate) VC 17/18 - TP7 - Spatial Filters
The Sobel Operators • Better approximations of the gradients exist • The Sobel operators below are commonly used VC 17/18 - TP7 - Spatial Filters
Comparing Edge Operators Good Localization Noise Sensitive Poor Detection Gradient: Roberts (2 x 2): Sobel (3 x 3): Sobel (5 x 5): Poor Localization Less Noise Sensitive Good Detection VC 17/18 - TP7 - Spatial Filters
Effects of Noise • Consider a single row or column of the image • Plotting intensity as a function of position gives a signal Where is the edge?? VC 17/18 - TP7 - Spatial Filters
Solution: Smooth First Look for peaks in Where is the edge? VC 17/18 - TP7 - Spatial Filters
Derivative Theorem of Convolution …saves us one operation. VC 17/18 - TP7 - Spatial Filters
Laplacian of Gaussian (LoG) Laplacian of Gaussian Laplacian of Gaussian operator Where is the edge? Zero-crossings of bottom graph ! VC 17/18 - TP7 - Spatial Filters
2D Gaussian Edge Operators Derivative of Gaussian (DoG) Laplacian of Gaussian Gaussian Mexican Hat (Sombrero) • is the Laplacian operator: VC 17/18 - TP7 - Spatial Filters
Canny Edge Operator • Smooth image I with 2D Gaussian: • Find local edge normal directions for each pixel • Compute edge magnitudes • Locate edges by finding zero-crossings along the edge normal directions (non-maximum suppression) VC 17/18 - TP7 - Spatial Filters
Non-maximum Suppression • Check if pixel is local maximum along gradient direction • requires checking interpolated pixels p and r VC 17/18 - TP7 - Spatial Filters