高斯滤波器 matlab命令,【上海校区】3.过滤——高斯滤波器之Matlab、Octave实战_5...

在Matlab使用高斯滤波器

本文首先使用Matlab展示示例,我要做的是在Matlab中演示过滤中的代码和效果。

基本上,Matlab构建过滤器和应用过滤器是非常常见,甚至琐碎的。

Matlab,我们要做的是定义两件事:

第一:我们将定义内核的大小;(请记住,这就是我们之前谈论的内容)>> hsize = 31;

在这个例子它将是31乘31。注意是核大小为奇数,注意我才可以把中心像素画下来。

第尔:我们将定义sigma的大小;

我要让sigma为5。

Matlab有一个非常棒的小函数fspecial。>> sigma = 5;

>> h = fspecial('gaussian', hsize, sigma);

在fspecial中,您可以为其指定参数,其中一个是您想要的过滤器类型。我们选择"gaussian"。

您还必须给它hsize和sigma,才能完成这个函数的操作。

您也可以给它矩形尺寸和多个sigma。完成后,它将为您构建这些过滤器。

事实上,Matlab有一个叫做冲浪的美丽小功能。>> surf(h);

对,如果你用正确的颜色图画出来,它会把你画成一个曲面,你会看到这个:

forum.php?mod=viewthread&tid=419380

您还可以将其显示为俯瞰的图像,>> imagesc(h);

运行代码后效果如图:

forum.php?mod=viewthread&tid=419380

但更重要的是,你可以取你的图像,这是我们这里熊猫的图像:

forum.php?mod=viewthread&tid=419380

我可以用这个h对它进行过滤:>> outim = imfiler(im, h);

>> imshow(outim);

这是我们刚建立的过滤器,然后我可以展示它。那会是什么样子?

forum.php?mod=viewthread&tid=419380

这将是一只模糊的熊猫。

此代码是构建过滤器并将其应用于Matlab中的图像所需的全部代码。

这很容易。

同样,根据sigma的大小,我们得到不同的平滑量。

所以这里我们使用三个不同的sigma:1,3和10。代码如下:>> for sigma = 1:3:10

h = fspecial('gaussian', fsize, sigma);

out = imfiler(im, h);

imshow(out);

pause;

end

我们使用不同大小的sigmas建立我们的高斯,我们过滤并显示它们,结果如图:

forum.php?mod=viewthread&tid=419380

如你所看,我们得到了不会模糊,一般模糊,很模糊的三个不同效果。(注意模糊是由sigma大小决定,而不是内核大小)

这就是在Matlab中构建这些过滤器所需的全部内容。在Octave高斯滤波器去除噪音

我们谈一下使用滤波器去除噪声,让我们看看它是如何运作的。

让我们加载一个完美的图像。>> img = imread('saturn.png');

>> imshow(img);

代码运行结果如下:

forum.php?mod=viewthread&tid=419380

然后通过添加一些噪音来破坏它。>> noise = randn(size(img)) .* 25;

>> noise_img = img + noise;

>> imshow(noise_img);

代码运行结果如下:

forum.php?mod=viewthread&tid=419380

我应该为这个sigma命名以避免以后混淆。>> noise_sigma = 25;

>> noise = randn(size(img)) .* noise_sigma;

>> noise_img = img + noise;

>> imshow(noise_img);

最后,我们知道如何创建高斯滤波器。我们定义一个内核大小和一个sigma。>> filter_size = 11;

>> filter_sigma = 2;

接着我们可以使用图像包中的fspecial函数。所以首先加载包,然后创建过滤器。>> pkg load image;

>> filter = fspecial('gaussian', filter_size, filter_sigma);

现在,我们可以应用此过滤器来消除噪音。>> smoothed = imfilter(niose_img, filter);

>> imshow(smoothed);

注意imfilter中参数的顺序:首先是图像,然后是过滤器。

代码运行后:

forum.php?mod=viewthread&tid=419380

请注意滤镜是如何平滑的,或者更确切地说是模糊了图像。

像噪音一样的细微颗粒现在被弄模糊了。但是过滤器也对原始图像产生了很大影响。

因此,去除噪音并不神奇。你不可能完全回到最初的状态。

在视觉上,它可能看起来不太令人印象深刻,但是考虑到噪声图像与平滑图像相比,图像处理程序的进一步表现非常不同。

继续,自己运行此代码,你尝试不同的参数来生成噪音和平滑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值