您能加我 球球 吗?我想仔细问一下,谢谢啊,三一七一八二三六二
追答在这里问就行,其他人也能看到。
追问我用这个语句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
弄出来了没有?