Significance


The significance of this project comes in comprehending the underlying theory behind pattern detection and matching. Signal processing has long been used in this area using correlation, where matches are made between two images. We have taken this established technique one step further. Our goal is not to match two pictures, but to rather detect specific patterns within a larger image.

Since we are working with the image on a computer, it is by definition "digitized." Since this image is in the digital domain, we can treat it as a matrix inside of Matlab. The matrix indexes an image map and each element represents a pixel to be displayed. With the matrix format, we can perform many operations on the image such as convolution and addition/subtraction.

Convolution of two one-dimensional signals, "a" and "b," first flips "a" (assuming causal signals) over the y-axis, and then slides it horizontally through "b." At each index (n), points are multiplied together and then summed. The resulting signal is the length of "a" plus the length of "b" minus 1. The convolved signal is almost always more complicated than the original signal. What the convolution tells us is where the two signals overlap the most.

Two-dimensional convolution is a simple extension of the one-dimensional idea. Here we simply run it twice, both horizontally and vertically. Things become interesting, though, when the two signals are taken into the frequency domain. Because the Fourier transfor replicates the original signal every 2*pi, we can run into problems with circular convolution, where a much longer signal will be overlapped by a much smaller signal in more than one place at a specific index. To avoid this problem of aliasing, the signals must be padded to the sum of their lengths minus one. This same reasoning can be applied to two-dimensional images, where padding is done on the size of the image matrices, rather than on the length of the input signals.

Once the signals are padded and transformed into the frequency domain, we only have to multiply them together, and then take the inverse Fourier transform. Although this operation seems more computationally intensive that simply doing the convolution, speed gains are realized when the Fourier transform is handled by the Fast Fourier Transform algorithm. The FFT takes advantage of the periodicity in the shifting component of the transform to reduce the number of floating-point operations and greatly increase processing speed. This is explained further in the Performance section.


Last Updated: December 21, 1996

Home Page