How to do 2-D Gaussian convolution by 2 1-D convolution kernels?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

How to do 2-D Gaussian convolution by 2 1-D convolution kernels?

panovr
Hi,
 the Gaussian convolution is often used in image processing, and it
says that 2-D Gaussian convolution can be separated by 2 1-D Gaussian
convolution (thus more computation efficient). I have several questions in
implementing Gaussian convolution:
 1. How to compute 1-D and 2-D Gaussian convolution kernel?
 2. How to smooth image by 2 1-D Gaussian convolution kernel?
 3. How to compute image gradients by 2 1-D Gaussian convolution kernel?
 I have read some image processing books, but can not find related
information.
 Thanks!

--

Yili Zhao
Reply | Threaded
Open this post in threaded view
|

Re: How to do 2-D Gaussian convolution by 2 1-D convolution kernels?

Gluender
Dear Yili Zhao,

separation of a 2D Gaussian into two 1D Gaussians is pure mathematics:

exp[-(x^2 + y^2)] = exp(-x^2) exp(-y^2)

>Hi,
>  the Gaussian convolution is often used in image processing, and it
>says that 2-D Gaussian convolution can be separated by 2 1-D Gaussian
>convolution (thus more computation efficient). I have several questions in
>implementing Gaussian convolution:
>  1. How to compute 1-D and 2-D Gaussian convolution kernel?
>  2. How to smooth image by 2 1-D Gaussian convolution kernel?
>  3. How to compute image gradients by 2 1-D Gaussian convolution kernel?
>  I have read some image processing books, but can not find related
>information.
>  Thanks!
>Yili Zhao

Convolution with a Gaussian will never result in something like a
gradient-image, because it mmeans lowpass filtering. What you perhaps
mean is convolution with "Difference of two Gaussians" (DOG) having
different variances which results in lowpass-filtered Laplace-like
operations.

All this is quite basic mathematics and signal processing and should
be treated in the better image processing books. You might also
investigate the corresponding code of ImageJ.

HTH
--


                   Herbie

          ------------------------

          <http://www.gluender.de>
Reply | Threaded
Open this post in threaded view
|

Re: How to do 2-D Gaussian convolution by 2 1-D convolution kernels?

panovr
In reply to this post by panovr
Hi,
> Convolution with a Gaussian will never result in something like a
> gradient-image, because it mmeans lowpass filtering. What you perhaps
> mean is convolution with "Difference of two Gaussians" (DOG) having
> different variances which results in lowpass-filtered Laplace-like
> operations.
  yes, my main objective is want to implement an image pyramids
structure, and it seems that Gaussian smoothing and "Difference of two
Gaussians" are used, and in order to improve computation efficiency,
separately Gaussian convolutions should be used. Any recommendations?
  Thanks!

--
Yili Zhao