利用均值滤波的方法去除图像的噪声,将滤除噪声前后的图像输出。调用imfilter函数滤除图像噪声并输出,对比调用MATLAB函数去噪的图像与自己所编写程序去噪后的图像进行对比。
clc;
A=imread('noise.bmp');
A1=rgb2gray(A);%变成灰度图像
figure(1);
subplot(1,3,1);
imshow(A1);title('模糊图像')
[width,height]=size(A1);
n=5;
a=ones(n,n);
B=double(A1);
C=B;
for i=1:(height-n)+1
for j=1:(width-n)+1
D=B(i:i+(n-1),j:j+(n-1)).*a;
s=sum(sum(D)); %求D矩阵中各元素之和
C(i+(n-1)/2,j+(n-1)/2)=s/(n*n); %将与模板运算后的各元素的均值赋给模板中心位置的元素
end
end
subplot(1,3,2);
imshow(uint8(C));title('自设函数');
w=1/25*ones(5,5)%滤波模板
Ismoo=imfilter(A1,w,'corr','replicate');%滤波
subplot(1,3,3);
imshow(Ismoo);title('imfilter函数');
运行:

该博客介绍了如何使用自定义函数和MATLAB内置的imfilter函数对图像进行均值滤波以去除噪声。首先,将彩色图像转换为灰度图像,然后通过自定义的循环实现均值滤波,最后使用imfilter函数进行相同操作并对比结果。实验显示了三种不同处理方式的图像,直观地展示了两种方法在去噪效果上的相似性。
5315

被折叠的 条评论
为什么被折叠?



