Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why can fourier transform be used for image recognization while being sensitive to noises?

As we know Fourier Transform is sensitive to noises(like salt and peppers),

how can it still be used for image recognization?

Is there a FT expert here?

like image 431
user198729 Avatar asked Apr 05 '10 15:04

user198729


1 Answers

Update to actually answer the question you asked... :) Pre-process the image with a non-linear filter to suppress the salt & pepper noise. Median filter maybe?

Basic lesson on FFTs on matched filters follows...

The classic way of detecting a smaller image within a larger image is the matched filter. Essentially, this involves doing a cross correlation of the larger image with the smaller image (the thing you're trying to recognize).

  1. For every position in the larger image
  2. Overlay the smaller image on the larger image
  3. Multiply all corresponding pixels
  4. Sum the results
  5. Put that sum in this position in the filtered image

The matched filter is optimal where the only noise in the larger image is white noise.

This IS computationally slow, but it can be decomposed into FFT (fast Fourier transform) operations, which are much more efficient. There are much more sophisticated approaches to image matching that tolerate other types of noise much better than the matched filter does. But few are as efficient as the matched filter implemented using FFTs.

Google "matched filter", "cross correlation" and "convolution filter" for more.

For example, here's one brief explanation that also points out the drawbacks of this very oldschool image matching approach: http://www.dspguide.com/ch24/6.htm

like image 142
Greg Avatar answered Nov 01 '22 13:11

Greg