3
$\begingroup$

Prewitt filters are popular filters in image processing for edge detection http://en.wikipedia.org/wiki/Prewitt_operator

Can anyone give a proof on why Perwitt and other edge detecting filters are high pass?

$\endgroup$
3
  • 4
    $\begingroup$ Is your question "How do I prove that Prewitt is high-pass?" or "Why is it that all edge-detectors are high-pass filters? $\endgroup$ Dec 17, 2012 at 11:55
  • 1
    $\begingroup$ What about taking Fourier transform of the filter kernel? This will reveal which frequencies are preserved and which are attenuated. $\endgroup$
    – Libor
    Dec 18, 2012 at 1:45
  • $\begingroup$ I tried to take fft of the kernel (3x3). Here is what I get. How do I interpret that? 0 0 0 1.5000 - 0.8660i 1.5000 - 0.8660i 1.5000 - 0.8660i 1.5000 + 0.8660i 1.5000 + 0.8660i 1.5000 + 0.8660i $\endgroup$
    – mkuse
    Dec 18, 2012 at 11:20

2 Answers 2

5
$\begingroup$

That depends on the definition of high-pass filter. If you define a high-pass filter as a filter that has high response in the high frequencies in frequency domain, then the easiest way is to take a look at the magnitude of Fourier transform, (by definition).

Applying Fourier transform (in Matlab)

 A = fftshift(abs(fft2(padarray([-1 -1 -1; 0 0 0; 1 1 1],[10 10]))));

results in the following image:

enter image description here

Now the interpretation - The part in the middle is the low frequencies. It has low response. There are 2 high responses, both with zero X frequency and some high Y frequency. That is not surprising since we took a filter that detects edges in Y direction.


Why does it make sense to define high-pass filter in this way?

Because a convolution can be thought as multiplication in Frequency domain. That is, if you have a signal $S$ and filter kernel $f$,

$F[S**f] = F[S] * F[f] $

Or, put in another way:

$ S**f = F^{-1} [ F[S] * F[f] ] $

where convolution is denoted by $**$


There is another, more intuitive way, that does not involve Fourier transform. A response to a linear filter is strong when the underlying signal "looks" like the filter itself. Therefore, there should be a strong response to edges.

$\endgroup$
1
$\begingroup$

A simple explanation: How would you try to implement a differentiation in circuit design? The prewitt operator is simply a digitalization of discrete differentiation. If it was implemented in a circuital form it would attentuate low frequency signals and only allow high frequency signals to pass through.

Which is precisely the definition of a high-pass filter.

$\endgroup$
2
  • $\begingroup$ I think you meant "diminish", not "accentuate" low frequency signals. $\endgroup$
    – Jim Clay
    Dec 18, 2012 at 14:58
  • $\begingroup$ Thanks for checking. I meant 'attenuate' but ended up typing 'accentuate'. $\endgroup$
    – Naresh
    Dec 19, 2012 at 3:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.