Skip to main content
10 votes
Accepted

Why does the separable filter reduce the cost of computing the operator?

Assume you have a $N\times M$ sized image. If you know take what is classically used, a square filter kernel, of let's say size $L\times L$, you'd need to convolve that with the picture – which gives ...
Marcus Müller's user avatar
7 votes
Accepted

How to Check Separability of 2D Filter / Signal / Matrix

Nilesh Padhi, Welcome to the DSP Community. The classic definition of separable means the data (2D) given by $ X \in \mathbb{R}^{m \times n} $ can be written as: $$ X = \sigma u {v}^{T} $$ Where $ \...
Royi's user avatar
  • 20.5k
6 votes

How Is Laplacian of Gaussian (LoG) Implemented as Four 1D Convolutions?

There are two ways to compute the Laplace of Gaussian operator: As Royi suggests, by computing $f * \nabla^2 * g$,where we take the operator $\nabla^2$ as a convolution kernel created using the ...
Cris Luengo's user avatar
  • 2,770
6 votes

How to Prove a 2D Filter Is Separable?

Given that $G(x)$ is a row vector, while $G(y)$ is a column one, their convolution will be identical to the matrix product $G(x,y)=G(x)*G(y)=G(x)G(y)$. For this reason, as soon as $G(x,y)$ is rank-1, ...
Tolga Birdal's user avatar
  • 5,515
6 votes
Accepted

How to Prove a 2D Filter Is Separable?

Let's have a different perspective on that. Let's say our 2D Linear Operator is given by the Matrix $ G \in {\mathbb{R}}^{n \times n} $. Using the SVD Decomposition the operator can be written as: ...
Royi's user avatar
  • 20.5k
5 votes
Accepted

How to Decompose a Separable Filter?

Indeed you can do that. You may look on my answer to How to Prove a 2D Filter Is Separable? By the SVD for any filter $ A $: $$ A = \sum_{i = 1}^{n} {\sigma}_{i} {u}_{i} {v}_{i}^{T} $$ Since we'...
Royi's user avatar
  • 20.5k
4 votes
Accepted

Analytical Proof of LoG Filter Separability

The centered Gaussian Kernel can be written, in its general form, as (Up to a scale): $$ G \left( x, y \right) = \exp \left( -{ \begin{bmatrix} x \\ y \end{bmatrix} }^{T} \boldsymbol{C}^{-1} \begin{...
Royi's user avatar
  • 20.5k
3 votes
Accepted

How to find out if a transform matrix is separable?

I admit I did not really thought about it before. I hope my notations won't be too sloppy. I assume that given an operator matrix $A(u,v)$, you can apply this operator as a transform on an image $I$, ...
Laurent Duval's user avatar
3 votes
Accepted

Mathematical Approach to Detect If a 2D Signal Is Separable

Let's assume our data is in finite dimension. So $ x \left[ m, n \right] \in \mathbb{R}^{M \times N} $. So it can be written as a matrix $ X \in \mathbb{R}^{M \times N} $. Using the SVD Decomposition ...
Royi's user avatar
  • 20.5k
2 votes

Separability vs. Resolution - Synonymous terms?

Most technical terms, such as these two, do not get their definitions purely from their etymology, but rather from the context of application, by experience and by tradition of acceptance. And for ...
Fat32's user avatar
  • 28.4k
2 votes
Accepted

How Is Laplacian of Gaussian (LoG) Implemented as Four 1D Convolutions?

I think Chris Luengo's answer is perfect. The trick is that you can calculate the 2nd derivative of the image (Using Finite Differences -> Convolution) and then blur it with Gaussian Filter. Since ...
Royi's user avatar
  • 20.5k
1 vote
Accepted

Rules of image's separability

A separable image $I$ that could be written in a separable way with vectors $a$ and $b$ as: $$ I= a^Tb$$ would necessarily be of rank one at most. Either a zero-matrix (rank 0), or with only one ...
Laurent Duval's user avatar
1 vote

Implementation of a Separable Bilateral Filter for Edge Preserving Smoothing

The idea is the same as any other separable filter: Work on the columns / rows of the image. Work on the rows / columns of the output of the previous step. In Julia it will be something like: ...
Royi's user avatar
  • 20.5k
1 vote

How Does a Separable Filter Work?

Attaching an example to show how to apply a separable filter to data.
Dharti's user avatar
  • 11

Only top scored, non community-wiki answers of a minimum length are eligible