Suppose, I have 3 kernels:

  1. $$ \left[ \begin{array}{cc} a&b&c\\ d&e&f\\ g&h&i \end{array} \right] $$

  2. $$ \left[ \begin{array}{cc} p&q&r\\ s&t&u\\ v&w&x \end{array} \right] $$

  3. $$ \left[ \begin{array}{cc} \alpha&\beta&\gamma\\ \delta&\epsilon&\zeta\\ \eta&\theta&\iota \end{array} \right] $$

How can I create a filter bank from them?

Should I AND, or OR, or add them together?

Or, should I just apply each of them one by one to my test-image through three separate convolution operations?


2 Answers 2


A filter bank really is just what it says:

A bank of filters, each of which gets applied to the signal.

So, one signals in (signal=image), 3 signals out. You apply each of the kernels separately and don't combine anything.

  • $\begingroup$ is it really possible to combine the kernels to achieve the same objective though? $\endgroup$
    – user23572
    Jun 27, 2018 at 17:11
  • $\begingroup$ what? no! totally different things. This filter bank just gives you three output images from your one input image, each filtered by one filter. There's no combination of anything. $\endgroup$ Jun 27, 2018 at 17:40
  • $\begingroup$ Yes, there are possibilities to combine the kernels, and then do clever tricks to get the three thought outputs back (higher-order algebra, bit-depth...) but this is probably beyond the current scope $\endgroup$ Jun 27, 2018 at 18:17

Since the term linear does not appear in the question and the current answers, let me offer a complementary perspective.

A kernel in this acceptation (especially for images, which don't always follow linear rules, think about occlusion or saturation) is an array that is applied, somehow, on any input data. One often distinguishes linear and non-linear kernel (as one has linear and nonlinear filters, even is the terminology might seem improper).

Let us start from the linear point-of-view in the most specific sense: the filter array is applied as a convolution. Then @MarcusMuller's answer is perfect: a set, an array of linear filters, applied to input data as convolutions to yield several separate output data. Most additional scalar linear operation (like the sum, the average, a weighted combination) on the output would be "useless": as they commute, summing the output is equivalent to summing the three filters in one single filter, and performing only one single convolution on the data.

Which leads us back to the objective in your comment; traditionally, a linear (analysis, I will come back on that later) filter-bank (FB) is used to split or separate data into components, often with separate spectra or a narrower ocontent (low-, mid- or high-frequencies for a three-band filter-bank). Or to merge different data streams into others, with a wider spectrum. So a generic multi-input-multi-output (MIMO) FB takes one or several inputs, filters them into one or several outputs. One then distinguishes analysis or synthesis filter banks.

Generally, recombining the outputs from an analysis FB drifts away from the separation objective. But a single filter is also a filter-bank (not very interesting per se though). But sometimes, this can be more efficient (computationally for instance).

Now, having narrower/wider outputs invites to rate variations, like downsampling and upsampling before or after the filters. To me, the most accepted sense of a filter bank is a bank of linear filters optionally combined with (linear, but not shift-invariant) upsampling or downsampling operations. And it is somewhat related to linear transforms, allowing expansion or shrinkage on the number of coefficients (they can be critical, oversampled or undersampled).

Then, people extend the notion to nonlinearity: filters can be nonlinear (like the median) and the kernels are interpreted as weights applied to a chunk of data. Or the data can be combined in non-linear ways, with $\min$, $\max$, AND or OR...

But in your case, as Marcus said, I'd bet on three standard filtered outputs. But in this case, there is not relationship between filters (except their kernel size), and what is powerful in the filter-bank theory is the linkage between the filters, and how one can optimize them. Now a couple of pointers:

  • 1
    $\begingroup$ ha! This should really be the accepted answer as it gives the broader view of things. $\endgroup$ Jun 27, 2018 at 18:14
  • $\begingroup$ Fair of you, but I am not sure, depending on the initial scope of the question. $\endgroup$ Jun 27, 2018 at 18:18
  • 1
    $\begingroup$ well, my answer really is a bit superficial and doesn't contribute much – since "filter bank" really isn't all that ungoogleable. Yours, on the other hand, does give perspective. $\endgroup$ Jun 27, 2018 at 18:55

Your Answer

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