gpt4 book ai didi

matlab - 在圆形图像区域应用二维高斯滤波器 - Matlab

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:26 24 4
gpt4 key购买 nike

有没有一种简单的方法可以在圆形图像区域中应用二维高斯滤波器(简单是指准备好的 matlab 函数),还是必须自己实现这个??

最佳答案

如果您想对图像的选定部分应用任何滤镜,一种选择是使用二进制蒙版。

img 成为您的图像,设置圆形 mask 的位置和半径以及滤镜的尺寸:

centre=[50 50];
radius=20;
n=5;

然后创建 mask :

Mask=zeros(size(img));
Disk = fspecial('disk',radius)==0;
Mask(centre(1)-radius:centre(1)-radius+size(Disk,1)-1, centre(2)-radius:centre(2)-radius+size(Disk,2)-1)=double(~Disk);

按照@Gacek 的建议应用过滤:

h = fspecial('gaussian', n);
Filtered=filter2(h, img);

将过滤后的区域与原图结合并显示结果:

Result=img.*uint8(~Mask)+uint8(Filtered.*Mask);
imshow(Result)

示例结果:

filtered lion

注意: 1. 将类 uint8 更改为原始图像的适当类。 2. 示例图片属于公共(public)领域,来源:en.wikipedia.org/wiki/File:Phase_correlation.png。

关于matlab - 在圆形图像区域应用二维高斯滤波器 - Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com