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.


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: http://dl.acm.org/citation.cfm?id=720464&CFID=260338827&CFTOKEN=99199893

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.

  • $\begingroup$ Are you certain about the DoG being not separable? "Algorithms for Efficient Computation of Convolution" by Karas, Svoboda (cdn.intechopen.com/pdfs/41657.pdf) says: "Gaussian, Difference of Gaussian, and Sobel are the representatives of separable kernels commonly used in signal and image processing" $\endgroup$
    – mloskot
    Jul 15 '19 at 19:08
  • $\begingroup$ @mloskot, even a single tilted 2D Gaussian is not separable. the paper is probably incorrect or makes assumptions about Gaussians. In its general form, it's exp(-xTAx) where T = transpose and A is a matrix. If you force A to be diagonal, then it is separable. $\endgroup$
    – thang
    Jul 15 '19 at 21:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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