Image processing 如何应用一个核尺寸为5 x 5的高斯滤波器,并通过matlab将其应用于图像

Image processing 如何应用一个核尺寸为5 x 5的高斯滤波器,并通过matlab将其应用于图像,image-processing,matlab,Image Processing,Matlab,我创建了一个带有5 x 5的高斯核的过滤器,这样中心就有一个网格顺序。我希望它适用于图像。我该怎么做呢?正如@Divakar所说,使用。您已经使用meshgrid和其他一些计算创建了高斯核。使用以下方法调用imfilter: out = imfilter(in, f); in是输入图像,out是输出图像,f是您定义的内核。您可以使用已定义的筛选器。您也可以使用fspecial的gaussian标志为您生成高斯内核,但我假设您是作为练习/家庭作业自己生成的 对于imfilter,您还可以使用其他

我创建了一个带有5 x 5的高斯核的过滤器,这样中心就有一个网格顺序。我希望它适用于图像。我该怎么做呢?

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

out = imfilter(in, f);
in是输入图像,out是输出图像,f是您定义的内核。您可以使用已定义的筛选器。您也可以使用fspecial的gaussian标志为您生成高斯内核,但我假设您是作为练习/家庭作业自己生成的

对于imfilter,您还可以使用其他标志,但以上是调用它的最基本方式。当内核在执行过滤时超出边界,或者如果要执行卷积或相关等操作时,有一些标志来处理边界上发生的情况。关于更多细节,请参阅文档,但上面的代码是入门的最基本代码


祝你好运

正如@Divakar已经指出的,您可以参考imfilter命令。请参阅 . 示例代码是

   %%# 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)

一个叫imfilter的家伙可能会。“有时候他真的很特别,”迪瓦卡说——这让我笑了。谢谢,非常感谢,但是我得到了一个导致高斯核的滤波器,加上给定大小的正负波瓣,这也为输入图像的卷积创建了一个滤波器,但我不知道我是如何在输入图像上创建一个过滤器的。@m.golzadeh这不是你在问题中所说的。你说你有一个高斯滤波器,想把它应用到图像上。。。你没有说你有一个导致/输出高斯核的过滤器。请更新您的问题,使其包含所有信息。你的评论也与你的问题相冲突。你在问题中说你创建了一个高斯核,但现在你说你不知道你是怎么创建的?请更新您的问题,以便我们了解所有事实。我使用公式创建了一个过滤器,我希望此过滤器应用于指定大小的图像。事实上,我不知道在128 x 128的图像大小上5 x 5的过滤器大小将如何应用。@m.golzadeh:使用imfilter。图像大小和过滤器大小不必相同。非常感谢,但我想创建一个给定大小的5 x 5的过滤器,作用于图像,但我不知道如何操作。@m.golzadeh-现在你说的与你在评论中告诉我的完全不同。你想知道如何创建高斯核,还是只想知道如何生成它?fspecial可用于计算后者。前者需要更多的工作。请使用此信息更新您的问题,以便我们知道您真正想要什么。我使用公式创建了一个筛选器,希望此筛选器应用于指定大小的图像。事实上,我不知道在128 x 128的图像大小上如何应用5 x 5的过滤器大小。