如何应用具有5 x 5大小的内核的高斯滤波器并通过matlab将其应用于图像

时间:2014-08-03 18:16:01

标签: image-processing matlab

我创建了一个大小为5 x 5的高斯内核的滤镜,使得中心具有网格网格顺序。我希望它适用于图像。我该怎么做?

2 个答案:

答案 0 :(得分:1)

正如@Divakar所说,使用imfilter。您已经使用meshgrid创建了高斯内核并使用了其他一些计算。使用以下方式调用imfilter

out = imfilter(in, f);

in是输入图像,out是输出图像,f是您定义的内核。已经定义了可以使用fspecial使用的过滤器。您还可以使用gaussian中的fspecial标记为您生成高斯内核,但我假设您自己生成此项作为练习/作业。

使用imfilter可以使用其他标志,但上面是调用它的最基本方法。有一些标志可以处理内核在执行过滤时超出边界时发生的情况,或者如果要执行卷积或关联等等。我将您推荐到文档以获取更多详细信息,但上述代码是最基本的代码,可以帮助您入门。

祝你好运!

答案 1 :(得分:1)

正如@Divakar已经指出的那样,你可以参考imfilter命令。请参考 Gaussian filter in MATLAB。 示例代码是

   %%# Read an image
   I = imread('peppers.png');

   %# Create the gaussian filter with hsize = [5 5] and sigma = 2
   %You have created this. so you can actually skip
   G = fspecial('gaussian',[5 5],2);

   %# Filter it
   Ig = imfilter(I,G,'same');
   %# Display
   imshow(Ig)