| Szeliski, Chapter 3.1-3.2 |
| 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: | |||
| We usually work with 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 | ||
| How can we “smooth” away noise in an image? | |
| Let’s write this down as an equation. Assume the averaging window is (2k+1)x(2k+1): | |
| What’s the kernel for a 3x3 mean filter? | |
| A Gaussian kernel gives less weight to pixels further from the center of the window | |
| This kernel is an approximation of a Gaussian function: | |
| What happens if you increase s ? Photoshop demo |
| How can we differentiate a digital image F[x,y]? | ||
| Option 1: reconstruct a continuous image, f, then take gradient | ||
| Option 2: take discrete derivative (finite difference) | ||
| 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? | |
| Suppose F is an impulse function (previous slide) What will G look like? |
| We can also apply filters to continuous images. | |
| In the case of cross correlation: | |
| In the case of convolution: | |
| Note that the image and filter are infinite. | |
| Cross-correlation/convolution is useful for, e.g., | ||
| Blurring | ||
| Sharpening | ||
| Edge Detection | ||
| Interpolation | ||
| Convolution has a number of nice properties | ||
| Commutative, associative | ||
| Convolution corresponds to product in the Fourier domain | ||
| More sophisticated filtering techniques can often yield superior results for these and other tasks: | ||
| Polynomial (e.g., bicubic) filters | ||
| Steerable filters | ||
| Median filters | ||
| Bilateral Filters | ||
| … | ||
| (see text, web for more details on these) | ||