1

To do a low-pass filter, I have used a Gaussian kernel, then do a convolution with this kernel to have the smoothed version of my image. Since the spline basis function tend to give a sharper cut-off, I would like to build a spline 2d kernel. Does anyone have an idea about this? Thank you in advance!


Thank you for your response. In fact I have a look on butterworth filter, but I suppose it is in frequency domain and require infinite support. My problem is very specific. I want to find the coefficients matrix that apply the filtering directly on the image.

I have use Gaussian as following:

Build the kernel

Gau2D=@(x,y) 1/(sigma*2*pi)*exp(-(x.^2+y.^2)/sigma^2/2); 
[x,y] = meshgrid(-(k)/2:(k)/2);
ker = Gau2D(x,y);
ker = ker./sum(ker(:));

BLUR = convmtx2(ker,[M N]);

Apply on an image

img_filtered=BLUR*img(:);

I am thinking, for example, instead of using Gaussian kernel, I can use something like cardinal spline kernel, to increase the sharpness of the filter. But still, I can find the way to deal with it. Please help!

4

0 回答 0