Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

In the image processing world, I've noticed that a lot of the popular convolution filters are separable. Here's a quick list of common separable filters:

Not separable:

  • Laplacian
  • What other common filters are not separable?

I'm a little bit worried about this post being closed for being too broad or not constructive enough. But, some "what is this good for?" questions have been well-received here.

Background: I've developed some high-performance 2D convolution implementations. I'd like to have a better handle on the motivating applications.

share|improve this question
up vote 6 down vote accepted

There are many. In general, steerable filters are not separable. Few are, but many are not.

Here is a short list:

  • Gabor filters in certain directions. Of course, one can use the bases that are separable due to the fact that Gabor filters are steerable. Gabor filters have the advantage that they are optimally localized in time and frequency. As a degenerate case, consider a non-symmetric 2D Gaussian where the principal components are not horizontal or vertical.

  • Difference of gaussian (DoG) used to model retinal ganglion and thalamic receptive fields are also not separable.

  • Marr-Hildreth for edge detection is not separable.

  • A bunch of filters used for segmentation are not separable:

The list can go on and on, and these are just common examples! You can certainly design FIR filters to fit your need, and there are methods to do this. That is the whole purpose of a large sub-field of DSP.

In general when you design a 2-D filter, if it is anisotropic and not oriented horizontally or vertically, chances are that it is not separable. For example, if you were to design a low pass (pre-)filter to remove high frequency that may cause aliasing in a hexagonal sampling system. This would have to be an analog filter, but for digital, consider a down sampling scenario. For optimal design, you'd want to keep as much information as possible, so your filter would most likely match the hexagonal sampling grid. This will definitely give you a filter that is not separable.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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