作业帮 > 综合 > 作业

matlab 高斯滤波模板是怎么选取的?怎么取均值、方差的值对应出来的模板系数是整数呢?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/08 18:55:16
matlab 高斯滤波模板是怎么选取的?怎么取均值、方差的值对应出来的模板系数是整数呢?
你是问为什么不是小数吗?
由于模板大小限制,这些处理都是离散的,模板越大这些就越接近正确结果.
其实你想想,如果一个小小的3*3模板你用小数做根本没意义的,计算精度没提高徒增计算时间.
高斯滤波模板3*3 5*5 7*7 这些数不用你记住,下次用直接复制过来就可以.
其实都是对高斯函数的离散模拟.
欢迎追问.
再问: 您能加我 球球 吗?我想仔细问一下,谢谢啊,三一七一八二三六二
再答: 在这里问就行,其他人也能看到。
再问: 我用这个语句h = fspecial('gaussian',[5,5], 2);得出来的是我想知道,为什么差那么多呢?我菜鸟一个,刚接触TLAB,多谢啊

再答: 首先呢,你要知道高斯滤波中很重要的一个参数是sigma. 这个参数会决定高斯滤波的强度,也就是高斯函数的形状。 不同的参数会带来不同的模板,所以两个都是高斯滤波,但是形状不一样很正常。 第二,你要知道什么是高斯滤波,由于图像都是一个像素一个像素的离散的变化,而现实中的高斯函数又是无限大小(你可以把x=10000带进去,y只是会很接近0罢了) 所以我们用到的高斯模板都是模拟出来高斯函数的形状,大体就是中间鼓鼓的,边上平平的。 所以你用整数模拟也是模拟,小数模拟也是模拟,不会有完全的真实的实现。 第三,小数的来源我猜是将对应的坐标带入方程求解的。 用整数的原因是计算会很快。
再问: 您的意思是这个整数的模板也是近似符合高斯函数图像的吗?如果用3×3或者5×5的模板处理一幅图像,那么这行编码需要怎么改呢?谢谢了,h = fspecial('gaussian',[5,5], 2);
再答: 我建议你去搜索,MATLAB图像卷积运算。 自己学习的过程很重要,你自己实在搞不定再来问。
再问: 我现在很想知道用高斯模板处理图像的时候,怎么编写那句代码,不知道均值和方差的取值。h = fspecial('gaussian',[5,5], ?);这个方差取多少才能是那个整数模板呢?多谢啊
再答: 哎 你真够懒的啊 imfilter 自己看去
再问: h = imread('1.bmp') 1 2 1 f=[ 2 4 2 ] 1 2 1 imfilter(h,f) 是这样吗?请指教啊,哈哈
再答: f=[1,2,3, 4,5,6 7,8,9]; 我两年没用matlab了 我习惯上面的写法 你自己测试下结果吧
再问: 我运行了,不好使啊
再答: clear all g0=imread('d:\image\ha.jpg'); g0 = g0(:,:,2); %三维转二维 figure(1);imshow(g0) ;title('原图') g1=imnoise(g0,'salt & pepper',0.2) g1=im2double(g1); figure(2);imshow(g1);title('加入椒盐噪声') h8=[0 -1 0;-1 5 -1;0 -1 0]; g9=filter2(h8,g1,'same'); figure(10);imshow(g9);title('高斯高通滤波'); h1=fspecial('gaussian',4,0.3) g2=filter2(h1,g1,'same') figure(3);imshow(g2);title('进行高斯滤波') 2014-1-16 16:40:26 弄出来了没有?