数字图像处理,经典滤波算法去噪对比实验(Matlab实现)
来源:互联网 发布:现代年轻人社交数据 编辑:程序博客网 时间:2024/05/16 00:46
一,经典滤波算法的基本原理
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的噪声浓度)
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的椒盐噪声去噪对比)
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,去噪效果对比
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,去噪效果对比
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客观对比越高越好)
本对比也囊括了其他常见去噪方式的对比
参考资源
【1】《百度百科》
【2】《维基百科》
【3】冈萨雷斯《数字图像处理》
【4】http://blog.csdn.net/ebowtang/article/details/38960271
2 0
- 数字图像处理,经典滤波算法去噪对比实验(Matlab实现)
- MATLAB数字图像处理(3)滤波
- 使用 matlab 数字图像处理(九)—— 去卷积(deconvolution,逆滤波复原)
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像去噪典型算法及matlab实现
- 数字图像处理,二维图像小波阈值去噪的C++实现(matlab验证)
- 使用 matlab 数字图像处理(六)—— 空域滤波
- 数字图像处理基本算法实现(3)--section3.5-6空间滤波处理
- 数字图像处理,图像去噪算法简介
- window.open
- Android 中小细节
- 求N组数的最大公约数
- 用Java读二进制报文、做报文分析软件
- Centos6.5 编译安装PHP5.3.28
- 数字图像处理,经典滤波算法去噪对比实验(Matlab实现)
- 把树变成链表 Flatten Binary Tree to Linked List
- C# GeckoFX内核浏览器清空Cookie的方法
- 字节换算单位
- Windows下Linux 环境 Cygwin安装及配置 基本工具使用
- blkid
- maven+springMVC+mybatis+junit详细搭建过程
- C# 数据库操作3
- iOS TableView的性能优化