Notes
Slide Show
Outline
1
Images and Transformations
2
Reading
  • Forsyth & Ponce, chapter 7
3
What is an image?
  • We can think of an image as a function, f, from R2 to R:
    • f( x, y ) gives the intensity at position ( x, y )
    • Realistically, we expect the image only to be defined over a rectangle, with a finite range:
      • f: [a,b]x[c,d] à [0,1]

  • A color image is just three functions pasted together.  We can write this as a “vector-valued” function:
4
Images as functions
5
What is a digital image?
  • In computer vision we usually operate on digital (discrete) images:
    • Sample the 2D space on a regular grid
    • Quantize each sample (round to nearest integer)
  • If our samples are D apart, we can write this as:
  • f[i ,j] = Quantize{ f(i D, j D) }
  • The image can now be represented as a matrix of integer values
6
Image transformations
  • An image processing operation typically defines a new image g in terms of an existing image f.
  • We can transform either the domain or the range of f.
  • Range transformation:


  • What’s kinds of operations can this perform?



7
Image processing
  • Some operations preserve the range but change the domain of f :


  • What kinds of operations can this perform?








  • Many image transforms operate both on the domain and the range
8
Linear image transforms
  • Let’s start with a 1-D image (a “signal”):
9
Linear image transforms
  • Let’s start with a 1-D image (a “signal”):
10
Linear image transforms
  • Let’s start with a 1-D image (a “signal”):
11
Linear image transforms
  • Another example is the discrete Fourier transform



  • Each row of M is a sinusoid (complex-valued)
  • The frequency increases with the row number


12
Linear shift-invariant filters
13
2D linear transforms
  • We can do the same thing for 2D images by concatenating all of the rows into one long vector:



14
2D filtering
  • A 2D image f[i,j] can be filtered by a 2D kernel h[u,v] to produce an output image g[i,j]:



  • This is called a cross-correlation operation and written:


  • h is called the “filter,”  “kernel,”  or “mask.”
  • The above allows negative filter indices.  When you implement need to use:  h[u+k,v+k] instead of h[u,v]
15
Noise
  • Filtering is useful for noise reduction...









  • Common types of noise:
    • Salt and pepper noise: contains random occurrences of black and white pixels
    • Impulse noise: contains random occurrences of white pixels
    • Gaussian noise: variations in intensity drawn from a Gaussian normal distribution
16
Mean filtering
17
 
18
Mean filtering
19
Effect of mean filters
20
Mean kernel
  • What’s the kernel for a 3x3 mean filter?


21
Gaussian Filtering
  • A Gaussian kernel gives less weight to pixels further from the center of the window








  • This kernel is an approximation of a Gaussian function:
22
Mean vs. Gaussian filtering
23
Convolution
  • A convolution operation is a cross-correlation where the filter is flipped both horizontally and vertically before being applied to the image:



  • It is written:


  • Suppose H is a Gaussian or mean kernel.  How does convolution differ from cross-correlation?
24
Convolution theorems
  • Let F be the 2D Fourier transform of f, H of h
  • Define
  • Convolution theorem: Convolution in the spatial (image) domain is equivalent to multiplication in the frequency (Fourier) domain.



  • Symmetric theorem: Convolution in the frequency domain is equivalent to multiplication in the spatial domain.




  • Why is this useful?
25
2D convolution theorem example
26
Median filters
  • A Median Filter operates over a window by selecting the median intensity in the window.
  • What advantage does a median filter have over a mean filter?
  • Is a median filter a kind of convolution?


27
Comparison: salt and pepper noise
28
Comparison: Gaussian noise