ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 一,经典滤波算法的基本原理 ###1,中值滤波和均值滤波的基本原理 参考以前转载的博客:http://blog.csdn.net/ebowtang/article/details/38960271 ###2,高斯平滑滤波基本原理 参考以前转载的博客:http://blog.csdn.net/ebowtang/article/details/38389747 # 二,噪声测试效果 ### 1,不同噪声效果 三幅图各噪声浓度分别是0.01 0.03,0.05(比如第一副图均是加入0.01的噪声浓度) ![](https://box.kancloud.cn/2016-03-02_56d6526a079a1.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526a23bdb.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526a3da52.jpg) ### 2,实验代码 ~~~ <span style="font-size:12px;">%读入原始图像并显示 image_original=imread('dog.bmp'); figure(1) subplot(2,4,1); imshow(image_original); title('原输入图像'); axis square; %生成含高斯噪声图像并显示 pp=0.05; image_gaosi_noise=imnoise(image_original,'gaussian',0,pp); subplot(2,4,2); imshow(image_gaosi_noise); title('添加高斯噪声后图像'); axis square; %生成含椒盐噪声图像并显示 d=0.05; image_saltpepper_noise=imnoise(image_original,'salt & pepper',d); subplot(2,4,3); imshow(image_saltpepper_noise); title('添加椒盐噪声后图像'); axis square; %生成含乘性噪声图像并显示 var=0.05; image_speckle_noise=imnoise(image_original,'speckle',var); subplot(2,4,4); imshow(image_speckle_noise); title('添加乘性噪声后图像'); axis square; %原图像直方图 r=0:255; bb=image_original(:); pg=hist(bb,r); pgr1=pg/length(bb); subplot(245);bar(pgr1);title('源输入图像的直方图'); r=0:255; bl=image_gaosi_noise(:); pg=hist(bl,r); pgr2=pg/length(bl); subplot(246);bar(pgr2);title('高斯噪声污染后的直方图'); r=0:255; bh=image_saltpepper_noise(:); pu=hist(bh,r); pgr3=pu/length(bh); subplot(247);bar(pgr3);title('椒盐噪声污染后的直方图'); r=0:255; ba=image_speckle_noise(:); pa=hist(ba,r); pgr4=pa/length(ba); subplot(248);bar(pgr4);title('乘性噪声污染后直方图');</span> ~~~ # 三,椒盐噪声去除能力对比 ### 1,三大去噪效果 三幅图椒盐噪声浓度分别是0.01 0.03,0.05(比如第一副图均是加入0.01的椒盐噪声去噪对比) ![](https://box.kancloud.cn/2016-03-02_56d6526a561cb.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526a6bde4.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526a858cc.jpg) ### 2,实现代码 ~~~ <span style="font-size:12px;"></span><pre name="code" class="cpp">%读入原始图像并显示 image_original=imread('dog.bmp'); figure(1) subplot(2,4,1); imshow(image_original); title('原输入图像'); axis square; %生成含高斯噪声图像并显示 %pp=0.05; %image_gaosi_noise=imnoise(image_original,'gaussian',0,pp); %生成含椒盐噪声图像并显示 dd=0.05; image_saltpepper_noise=imnoise(image_original,'salt & pepper',dd); %生成含乘性噪声图像并显示 %var=0.05; %image_speckle_noise=imnoise(image_original,'speckle',var); image_saltpepper_noise_after1=medfilt2(image_saltpepper_noise,[3,3]); subplot(2,4,2); imshow(image_saltpepper_noise_after1);title('中值滤波去椒盐噪声效果图'); axis square; h_gaosi1=fspecial('gaussian',3,1); image_saltpepper_noise_after2=imfilter(image_saltpepper_noise,h_gaosi1); subplot(2,4,3); imshow(image_saltpepper_noise_after2);title('高斯平滑去椒盐噪声效果'); axis square; image_saltpepper_noise_after3=wiener2(image_saltpepper_noise,[5 5]); subplot(2,4,4); imshow(image_saltpepper_noise_after3);title('维纳滤波去椒盐噪声效果'); axis square; %原图像直方图 r=0:255; bb=image_original(:); pg=hist(bb,r); pgr1=pg/length(bb); subplot(245);bar(pgr1);title('源输入图像的直方图'); r=0:255; bl=image_saltpepper_noise_after1(:); pg=hist(bl,r); pgr2=pg/length(bl); subplot(246);bar(pgr2);title('中值滤波去椒盐噪声后的直方图'); r=0:255; bh=image_saltpepper_noise_after2(:); pu=hist(bh,r); pgr3=pu/length(bh); subplot(247);bar(pgr3);title('高斯平滑去椒盐噪声后的直方图'); r=0:255; ba=image_saltpepper_noise_after3(:); pa=hist(ba,r); pgr4=pa/length(ba); subplot(248);bar(pgr4);title('维纳滤波去除椒盐噪声后的直方图'); ~~~ # 四,高斯噪声去除能力对比 ### 1,去噪效果对比 ![](https://box.kancloud.cn/2016-03-02_56d6526aa186a.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526ac1bee.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526ae8bee.jpg) ### 2,实验代码 ~~~ <span style="font-size:12px;"></span><pre name="code" class="cpp">%读入原始图像并显示 image_original=imread('dog.bmp'); figure(1) subplot(2,4,1); imshow(image_original); title('原输入图像'); axis square; %生成含高斯噪声图像并显示 pp=0.05; image_gaosi_noise=imnoise(image_original,'gaussian',0,pp); %生成含椒盐噪声图像并显示 %dd=0.01; %image_saltpepper_noise=imnoise(image_original,'salt & pepper',dd); %生成含乘性噪声图像并显示 %var=0.05; %image_speckle_noise=imnoise(image_original,'speckle',var); image_gaosi_noise_after1=medfilt2(image_gaosi_noise,[3,3]); subplot(2,4,2); imshow(image_gaosi_noise_after1);title('中值滤波去高斯噪声效果图'); axis square; h_gaosi1=fspecial('gaussian',3,1); image_gaosi_noise_after2=imfilter(image_gaosi_noise,h_gaosi1); subplot(2,4,3); imshow(image_gaosi_noise_after2);title('高斯平滑去高斯噪声效果'); axis square; image_gaosi_noise_after3=wiener2(image_gaosi_noise,[5 5]); subplot(2,4,4); imshow(image_gaosi_noise_after3);title('维纳滤波去高斯噪声效果'); axis square; %原图像直方图 r=0:255; bb=image_original(:); pg=hist(bb,r); pgr1=pg/length(bb); subplot(245);bar(pgr1);title('源输入图像的直方图'); r=0:255; bl=image_gaosi_noise_after1(:); pg=hist(bl,r); pgr2=pg/length(bl); subplot(246);bar(pgr2);title('中值滤波去高斯噪声后的直方图'); r=0:255; bh=image_gaosi_noise_after2(:); pu=hist(bh,r); pgr3=pu/length(bh); subplot(247);bar(pgr3);title('高斯平滑去高斯噪声后的直方图'); r=0:255; ba=image_gaosi_noise_after3(:); pa=hist(ba,r); pgr4=pa/length(ba); subplot(248);bar(pgr4);title('维纳滤波去除高斯噪声后的直方图'); ~~~ # 五,乘性噪声去除能力对比 ### 1,去噪效果对比 ![](https://box.kancloud.cn/2016-03-02_56d6526b0fcaf.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526b2a4a6.jpg) ![](https://box.kancloud.cn/2016-03-02_56d6526b3f248.jpg) ### 2,实验代码 ~~~ <span style="font-size:12px;">%读入原始图像并显示 image_original=imread('dog.bmp'); figure(1) subplot(2,4,1); imshow(image_original); title('原输入图像'); axis square; %生成含高斯噪声图像并显示 %pp=0.01; %image_gaosi_noise=imnoise(image_original,'gaussian',0,pp); %生成含椒盐噪声图像并显示 %dd=0.01; %image_saltpepper_noise=imnoise(image_original,'salt & pepper',dd); %生成含乘性噪声图像并显示 var=0.01; image_speckle_noise=imnoise(image_original,'speckle',var); image_speckle_noise_after1=medfilt2(image_speckle_noise,[3,3]); subplot(2,4,2); imshow(image_speckle_noise_after1);title('中值滤波去乘性噪声效果图'); axis square; h_gaosi1=fspecial('gaussian',3,1); image_speckle_noise_after2=imfilter(image_speckle_noise,h_gaosi1); subplot(2,4,3); imshow(image_speckle_noise_after2);title('高斯平滑去乘性噪声效果'); axis square; image_speckle_noise_after3=wiener2(image_speckle_noise,[5 5]); subplot(2,4,4); imshow(image_speckle_noise_after3);title('维纳滤波去乘性噪声效果'); axis square; %原图像直方图 r=0:255; bb=image_original(:); pg=hist(bb,r); pgr1=pg/length(bb); subplot(245);bar(pgr1);title('源输入图像的直方图'); r=0:255; bl=image_speckle_noise_after1(:); pg=hist(bl,r); pgr2=pg/length(bl); subplot(246);bar(pgr2);title('中值滤波去乘性噪声后的直方图'); r=0:255; bh=image_speckle_noise_after2(:); pu=hist(bh,r); pgr3=pu/length(bh); subplot(247);bar(pgr3);title('高斯平滑去乘性噪声后的直方图'); r=0:255; ba=image_speckle_noise_after3(:); pa=hist(ba,r); pgr4=pa/length(ba); subplot(248);bar(pgr4);title('维纳滤波去除乘性噪声后的直方图');</span> ~~~ # 六,PNSR客观对比 (PNSR客观对比越高越好) 本对比也囊括了其他常见去噪方式的对比 ![](https://box.kancloud.cn/2016-03-02_56d6526b5f9bd.jpg) #参考资源 【1】《百度百科》 【2】《维基百科》 【3】冈萨雷斯《数字图像处理》 【4】http://blog.csdn.net/ebowtang/article/details/38960271