SlideServe
Menu
Préférences
© SlideServe · v2026

Introduction to Computer Vision and Image Filtering Techniques in MATLAB

rachel avatar
75 diapositives · 924 Views · Jul 17, 2014

This lecture by Roger S. Gaborski provides an in-depth introduction to computer vision concepts and practical applications using MATLAB. It covers essential topics such as linear filtering, the usage of the `imfilter` function, and various image processing techniques including edge detection using Sobel and Canny filters. The lecture emphasizes boundary options, filter modes, and the construction of Gaussian kernels for image analysis. Participants will learn how to process and analyze images effectively using these foundational tools in MATLAB.

Introduction to Computer Vision and Image Filtering Techniques in MATLAB - slide 1
01 / 75Introduction to Computer Vision and Image Filtering Techniques in MATLAB
1 / 17

Télécharger la présentation

Introduction to Computer Vision and Image Filtering Techniques in MATLAB
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Lecture 07 Roger S. Gaborski Introduction to Computer Vision Roger S. GaborskiRoger S. Gaborski Roger S. Gaborski 1

  2. Linear Filtering in MATLAB g = imfilter(f, w, filtering mode, boundary, size) • filters the imput image f with the filter mask w. • f is input image. It can be of any class (logical/numeric) and dimension. • g is output image • filter mode: - 'corr' : correlation, and default mode - 'conv' : convolution Roger S. Gaborski

  3. Parameters • g = imfilter(f, w, filtering mode, boundary, size) Boundary options - X pad boundary with value X. Default X = 0. - 'symmetric' symmetric padding - 'replicate' replicate padding - 'circular' circular padding Size options - 'same' g is the same size of f (default mode) - 'full' g is full filtered by w, so size of g is increased Roger S. Gaborski

  4. MATLAB function for filtering: imfilter • g = imfilter(f, w, ‘replicate’) • Correlation is the default filtering mode. • If filters are pre-rotated 180 degrees, can simply use default(corr) for convolution • If filter is symmetric, doesn’t matter Roger S. Gaborski

  5. Simple First Derivative Approximation Difference x = Smoothing Roger S. GaborskiRoger S. Gaborski

  6. Rotate Filter Sensitive to edges at different orientations Roger S. GaborskiRoger S. Gaborski

  7. Sobel Filter • Consider unequal weights for smoothing operation = Sy x = Roger S. GaborskiRoger S. Gaborski

  8. Sobel Filter • Consider unequal weights for smoothing operation = Sx x = Roger S. GaborskiRoger S. Gaborski

  9. House Image >> I = imread('house1.jpg'); >> figure, imshow(I) >> Jg = rgb2gray(J); >> Jg = im2double(Jg); >> figure, imshow(Jg) Roger S. GaborskiRoger S. Gaborski

  10. Horizontal Edge Detection >> f = fspecial('sobel') f = 1 2 1 0 0 0 -1 -2 -1 >> imEdge = imfilter(Jg, f ); >> figure, imshow(imEdge,[ ]); Roger S. GaborskiRoger S. Gaborski

  11. >> figure, imshow(abs(imEdge),[]) Roger S. GaborskiRoger S. Gaborski

  12. >> figure, hist(abs(imEdge(:)),100) Roger S. GaborskiRoger S. Gaborski

  13. figure, imshow(imEdge>.5) Roger S. GaborskiRoger S. Gaborski

  14. Vertical Edges >> fv = f' fv = 1 0 -1 2 0 -2 1 0 -1 >> imEdgeV = imfilter(Jg, fv ); >> figure, imshow(imEdgeV,[]); Roger S. GaborskiRoger S. Gaborski

  15. Both Vertical and Horizontal Edges figure, subplot(1,2,1),imshow(abs(Eh)>.5) >> subplot(1,2,2),imshow(abs(Ev)>.5) Roger S. GaborskiRoger S. Gaborski

  16. figure, imshow((abs(Eh)+abs(Ev))/2,[]) Roger S. GaborskiRoger S. Gaborski

  17. build1.jpg Roger S. GaborskiRoger S. Gaborski

  18. Edge image Roger S. GaborskiRoger S. Gaborski

  19. ~ Operator Roger S. GaborskiRoger S. Gaborski

  20. Is there a better way to remove noise than the simple Sobel approach? Roger S. GaborskiRoger S. Gaborski

  21. Canny • Image is smoothed with 2D Gaussian Function • Canny uses two thresholds • One threshold detects strong edges • Second threshold detects weak edges connected to strong edges Roger S. GaborskiRoger S. Gaborski

  22. RECALL: 2D Gaussian Distribution • The two-dimensional Gaussian distribution is defined by: • From this distribution, can generate smoothing masks whose width depends upon the standard deviation, s: Roger S. GaborskiRoger S. Gaborski

  23. Sigma Determines Spread of Filter Variance, s2 = .25 Variance, s2 = 4.0 Roger S. GaborskiRoger S. Gaborski

  24. i2 + j2 i2 + j2 W(i,j) = exp (- ) W(i,j) = k * exp (- ) 2 s2 2 s2 k Creating Gaussian Kernels • The mask weights are evaluated from the Gaussian distribution: • This can be rewritten as: Roger S. GaborskiRoger S. Gaborski

  25. j -3 -2 -1 0 1 2 3 -3 -2 -1 i 0 1 2 3 Example 2 • Choose s = 2. and n = 7, then: Roger S. GaborskiRoger S. Gaborski

  26. 7x7 Gaussian Filter Roger S. GaborskiRoger S. Gaborski

  27. Building1 gray level image Roger S. GaborskiRoger S. Gaborski

  28. 31x31Gaussian, sigma = 3 Roger S. GaborskiRoger S. Gaborski

  29. 63x63 Gaussian, sigma = 10 Roger S. GaborskiRoger S. Gaborski

  30. Canny Edge Detector Roger S. GaborskiRoger S. Gaborski

  31. Implement Canny usingMATLAB edge Function EDGE Find edges in intensity image. EDGE takes an intensity or a binary image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in I and 0's elsewhere. EDGE supports six different edge-finding methods: The Sobel method finds edges using the Sobel approximation to the derivative. The Prewitt method finds edges using the Prewitt approximation to the derivative. The Roberts method finds edges using the Roberts approximation to the derivative. The Laplacian of Gaussian method finds edges by looking for zero crossings after filtering I with a Laplacian of Gaussian filter. The zero-cross method finds edges by looking for zero crossings after filtering I with a filter you specify. The Canny method finds edges by looking for local maxima of the gradient of I. The gradient is calculated using the derivative of a Gaussian filter. The method uses two thresholds, to detect strong and weak edges, and includes the weak edges in the output only if they are connected to strong edges. This method is therefore less likely than the others to be "fooled" by noise, and more likely to detect true weak edges. Roger S. GaborskiRoger S. Gaborski

  32. [g,t]=edge(im,'canny',[ ],.5) [ ] : Edge function determines the two thresholds CHANGING SIGMA OF GAUSSIAN, in this example = .5 Roger S. GaborskiRoger S. Gaborski

  33. [g,t]=edge(im,'canny',[ ],1) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski

  34. [g,t]=edge(im,'canny',[ ],2) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski

  35. [g,t]=edge(im,'canny',[ ],3) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski

  36. [g,t]=edge(im,'canny',[ ],5) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski

  37. Second Derivative Edge Detection Methods • Second derivative is noisy • First smooth the image, then apply second derivative • Consider • Effect of smoothing filter. • Gaussian: Roger S. GaborskiRoger S. Gaborski

  38. RECALL: Second Derivative Approximation • Discrete version of 2nd Partial Derivation of f(x,y) in x direction is found by taking the difference of Eq1 and Eq2: • 2 f(x,y) /  x2 = Eq1-Eq2 = 2f(x,y)-f(x-1,y)-f(x+1,y) In y direction: • 2 f(x,y) /  y2 = Eq3-Eq4 = 2f(x,y)-f(x,y-1)-f(x,y+1) Roger S. GaborskiRoger S. Gaborski

  39. Derivative Approximation for Laplacian Roger S. GaborskiRoger S. Gaborski

  40. Laplacian • Independent of edge orientation • Combine 2 f(x,y)/ x2 and 2 f(x,y)/ y2 =4 f(x,y) - f(x-1,y) – f(x+1,y) – f(x,y-1) – f(x,y+1) Roger S. GaborskiRoger S. Gaborski

  41. Laplacian of the Gaussian is a circularly symmetric operator. Second derivative is linear operation Therefore: convolving an image with 2 G(x,y) is the same as first convolving first with smoothing filter (Gaussian) then computing Laplacian of result. Edge are location of zero crossings LoG Roger S. GaborskiRoger S. Gaborski

  42. LoG Also called the Mexican hat operator. Roger S. GaborskiRoger S. Gaborski

  43. s2 Controls of the Size of the Filter s2 = 0.5 s2 = 2.0 Roger S. GaborskiRoger S. Gaborski

  44. Human Visual System Receptive Field Approximation 17 x 17 5x5 Roger S. GaborskiRoger S. Gaborski

  45. LoG (7x7, sigma = 2) Roger S. GaborskiRoger S. Gaborski

  46. LoG (15x15, sigma = 4) Roger S. GaborskiRoger S. Gaborski

  47. Summarizing: Laplacian of Gaussian (LoG) • Gaussian function: h(r) = -exp(-r2/22) • Applying the Gaussian has a smoothing or blurring effect • Blurring depends on sigma • THEN Laplacian of Gaussian (Second Derivative) Roger S. GaborskiRoger S. Gaborski

  48. MATLAB edge Function EDGE Find edges in intensity image. EDGE takes an intensity or a binary image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in I and 0's elsewhere. EDGE supports six different edge-finding methods: The Sobel method finds edges using the Sobel approximation to the derivative. The Prewitt method finds edges using the Prewitt approximation to the derivative. The Roberts method finds edges using the Roberts approximation to the derivative. The Laplacian of Gaussian method finds edges by looking for zero crossings after filtering I with a Laplacian of Gaussian filter. The zero-cross method finds edges by looking for zero crossings after filtering I with a filter you specify. The Canny method finds edges by looking for local maxima of the gradient of I. The gradient is calculated using the derivative of a Gaussian filter. The method uses two thresholds, to detect strong and weak edges, and includes the weak edges in the output only if they are connected to strong edges. This method is therefore less likely than the others to be "fooled" by noise, and more likely to detect true weak edges. Roger S. GaborskiRoger S. Gaborski

  49. Implementation: Laplacian of Gaussian (LoG) • Syntax: [g] = edge(f, ‘log’, T, sigma); Ignores edges that are not stronger than T If T not provided, MATLAB automatically chooses T Roger S. GaborskiRoger S. Gaborski

  50. Building What’s important?? Roger S. GaborskiRoger S. Gaborski