我创建了一个大小为5 x 5的高斯内核的滤镜,使得中心具有网格网格顺序。我希望它适用于图像。我该怎么做?
答案 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)