1 Image Features - I Hao Jiang Computer Science Department Sept. 22, 2009
Outline Summary of convolution and linear systems Image features Edges Corners Programming Corner Detection 2
Properties of Convolution 3 1. Commutative: f * g = g * f 2. Associative (f * g) * h = f *(g * h) 3. Superposition (f + g) * h = f * h + g * h full (N+M-1)x(N+M-1) N M
Linear System 4 h h fg = f * h a f1+ b f2 => a g1 + b g2 where the response of f1 is g1 and the response of f2 is g2 Linear: Shift invariant: if f => g, then f(n-m) => g(n-m)
Composite Linear System 5 h1 f f h2 h1 + h2 h1*h2
Nonlinear Filtering Neighborhood filtering can be nonlinear Median Filtering Mask [1 1 1 ] 11 1
Median Filtering in Denoising 7 Add 10% pepper noiseOriginal Image
Median Filtering for Denoising 8 Median filter with 3x3 square structure element
Median Filtering for Denoising 9 Median filter with 5x5 square structure element
Compared with Gaussian Filtering 10 Kernel size 5x5 and sigma 3Kernel size 11x11 and sigma 5
11 Image Features
Image Local Structures 12 Step Ridge Peak Valley CornerJunction
Image Local Structures 13 Step Ridge Peak Valley CornerJunction Line Structures: “Edge” Point Structures: “Corners”
Regions 14
An Example 15 edge Region corners
Edge Detection in Matlab 16 >> im = imread('flower.jpg'); >> im = im2double(im); >> im = rgb2gray(im); >> ed = edge(im, 'canny', 0.15);
How to Find an Edge? 17 A 1D edge
18 f(x) f’(x) f’’(x)
Extend to 2D 19 a b There is a direction in which image f(x,y) increases the fastest. The direction is called the gradient direction. Gradient [df/dx df/dy] Magnitude: sqrt(fx^2 + fy^2) Direction: atan2(fy, fx)
Finite Difference Approximating derivatives using finite difference. Finite difference and convolution 20
Noise Reduction noise 0.03 noise
Noise Reduction 22
Gaussian Filtering in Edge Detection 23
Gaussian Filtering in Edge Detection 24 h * (g * f) = (h * g) * f Difference KernelGaussian Kernel image Difference of Gaussian Kernel
Edge Detection in Images Gaussian smoothed filtering in x and y directions: Ix, Iy Non-maximum suppression for |Ix|+|Iy| Edge Tracing – double thresholding. 25
Edge Detection Using Matlab Canny edge detector: edge(image, ‘canny’, threshold) Sobel edge detector: edge(image, ‘sobel’, threshold) Prewitt edge detector: edge(image, ‘prewitt’, threshold) 26
27 D. Martin, C. Fowlkes, D. Tal, J. Malik. "A Database of Human Segmented Natural Images and its Application to Evaluating Segmentation Algorithms and Measuring Ecological Statistics”, ICCV, 2001 Berkeley Segmentation DataSet [BSDS]
Corner Detection Corner is a point feature that has large changing rate in all directions. 28 StepLine Peak Flat region
Find a Corner 29 Compute matrix H = in each window. If the ratio (Ix2 * Iy2 – Ixy ^2 ) > T (Ix2 + Iy2 + eps) We have a corner Ix2 Ixy Ixy Iy2 =
Corner Detection Programming 30