作业帮 > 综合 > 作业

matlab高斯滤波 运行不了了.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/09 02:44:48
matlab高斯滤波 运行不了了.
i=imread('C:\Users\Administrator\Desktop\picture\1.jpg');
g0 =i(:,:,2);
imshow(g0);
g1 = imnoise(g0,'gaussian',0,0.01);
接下来就有问题了.
h1=fspecial('gaussian',0,0.3)
g2=filter2(h1,g1,'same')
figure(2);imshow(g2);
这个是红色的出错部分显示:
Error using ==> iptcheckinput
Function FSPECIAL expected its second input,N,to be positive.
Error in ==> fspecial>ParseInputs at 347
iptcheckinput(p2,{'double'},...
Error in ==> fspecial at 97
[type,p2,p3] = ParseInputs(varargin{:});
怎么回事呢 怎么用高斯滤波函数呢?
filter2改成imfilter
再问: 还是不行啊 h1=fspecial('gaussian',0,0.3) g2=imfilter(h1,g1,'same') figure(2);imshow(g2); ??? Error using ==> iptcheckinput Function FSPECIAL expected its second input, N, to be positive. Error in ==> fspecial>ParseInputs at 347 iptcheckinput(p2,{'double'},... Error in ==> fspecial at 97 [type, p2, p3] = ParseInputs(varargin{:});
再答: g0 =i(:,:,2); figure,imshow(g0); g1 = imnoise(g0,'gaussian',0,0.01); figure,imshow(g1); h1=fspecial('gaussian',3,1); g2=imfilter(g1,h1,'same'); figure;imshow(g2);
再问: 谢谢您 可是可以帮我解释一下h1=fspecial('gaussian',3,1);这个是怎么回事吗? 3,1这个是怎么来的呢?谢谢您
再答: 3是窗口大小,即一个3*3的高斯滤波器。 1是二维高斯函数中的sigma。 这两个值可以任意设定,但窗口大小必须为正整数,你原来的0是不对的。 通常窗口的半径取sigma的3倍。