
滤波时根据高斯函数的形状来选择权值。采用3×3,5×5的高斯模板,实现对含高斯噪声的图像进行平滑处理? 5
请问如何用MATLAB编写程序?而且如何根据高斯形状选择权值?最好有注释~~~~谢谢啦!!!!...
请问如何用MATLAB编写程序?而且如何根据高斯形状选择权值?最好有注释~~~~谢谢啦!!!!
展开
2个回答
展开全部
I=imread('图片路径');%读入图像
figure;
imshow(I); title('原始图像') ;
h1=fspecial('gaussian',[3,3], 0.5);%用预定义的gaussian函数 ,窗口大小[3,3]
[m n p]=size(I);
%p=1,代表亮度分量,即灰度图像 %p=3,代表亮度分量(Y),色差分量(Cr,Cb)
if p==1%处理灰度图像
I=double(I);
I=conv2(I,h1,'same');%I与h1的二维离散卷积
end
if p==3%处理真彩色
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h1,'same');
I(:,:,2)=conv2(I(:,:,2),h1,'same'); %计算两个矩阵的二维卷积
I(:,:,3)=conv2(I(:,:,3),h1,'same');
end
I=uint8(I);
%经过3*3,sigma=0.5二维高斯低通滤波器滤波后的图像
figure;
imshow(I);title('滤波器3*3,sigma=0.5')
figure;
imshow(I); title('原始图像') ;
h1=fspecial('gaussian',[3,3], 0.5);%用预定义的gaussian函数 ,窗口大小[3,3]
[m n p]=size(I);
%p=1,代表亮度分量,即灰度图像 %p=3,代表亮度分量(Y),色差分量(Cr,Cb)
if p==1%处理灰度图像
I=double(I);
I=conv2(I,h1,'same');%I与h1的二维离散卷积
end
if p==3%处理真彩色
I=double(I);
I(:,:,1)=conv2(I(:,:,1),h1,'same');
I(:,:,2)=conv2(I(:,:,2),h1,'same'); %计算两个矩阵的二维卷积
I(:,:,3)=conv2(I(:,:,3),h1,'same');
end
I=uint8(I);
%经过3*3,sigma=0.5二维高斯低通滤波器滤波后的图像
figure;
imshow(I);title('滤波器3*3,sigma=0.5')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询