码迷,mamicode.com
首页 > 其他好文 > 详细

图像复原MATLAB实现

时间:2019-05-11 00:10:14      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:code   average   最大值   最小   ima   one   模型   rgb2gray   mat   

前言:本篇博客先介绍滤波器滤除噪声,再介绍滤波器复原,侧重于程序的实现。

一:三种常见的噪声

技术图片

 

技术图片

技术图片

 

 二:空间域滤波

空间域滤波复原是在已知噪声模型的基础上,对噪声的空间域进行滤波。
空间域滤波复原方法主要包括:

  均值滤波器

    算术均值滤波器

    几何均值滤波器
    谐波均值滤波器
    逆谐波均值滤波器
  顺序统计滤波器
    中值滤波器
    最大值/最小值滤波器

2.1算数均值滤波器

技术图片

1 img=imread(D:/picture/ZiXia.jpg);
2 img=rgb2gray(img);
3 figure,imshow(img);//原图
4 img_noise=double(imnoise(img,gaussian,0.06));
5 figure,imshow(img_noise,[]);//含有高斯噪声的图
6 img_mean=imfilter(img_noise,fspecial(average,3));//滤波后的图
7 figure;imshow(img_mean,[]);

技术图片

2.2几何均值滤波器

技术图片

1 img=imread(‘cameraman.tif‘);
2 img=rgb2gray(img);
3 figure,imshow(img);
4 img_noise=double(imnoise(img,gaussian,0.06));
5 figure,imshow(img_noise,[]);
6 img_mean=exp(imfilter(log(img_noise+1),fspecial(average,3)));
7 figure;imshow(img_mean,[]);

 

 技术图片

 2.3谐波均值滤波器

技术图片

2.4逆谐波均值滤波器

 技术图片

技术图片

采用逆谐波均值滤波器对附加胡椒噪声图像进行滤波的matlab程序如下:

1 img=imread(cameraman.tif);  figure,imshow(img);
2 [M,N]=size(img);R=imnoise2(salt & pepper,M,N,0.1,0);
3 img_noise=img;img_noise(R==0)=0;
4 img_noise=double(img_noise); figure,imshow(img_noise,[]);
5 Q=1.5;
6 img_mean=imfilter(img_noise.^(Q+1),fspecial(average,3))./imfilter(img_noise.^Q,fspecial(average,3));
7 figure;imshow(img_mean,[]);

技术图片

采用逆谐波均值滤波器对附加盐噪声图像进行滤波的matlab程序如下:

1 img=imread(csboard.tif);figure,imshow(img);
2 [M,N]=size(img);R=imnoise2(salt & pepper,M,N,0,0.1);
3 img_noise=img;img_noise(R==1)=255;
4 img_noise=double(img_noise); figure,imshow(img_noise,[]);
5 Q=-1.5;
6 img_mean=imfilter(img_noise.^(Q+1),fspecial(average,3))./imfilter(img_noise.^Q,fspecial(average,3));
7 figure;imshow(img_mean,[]);

技术图片

 2.5中值滤波器

技术图片

技术图片

技术图片

 

 

1 img=imread(cameraman.tif);
2 img_noise=double(imnoise(img,salt & pepper,0.06));
3 img_mean=imfilter(img_noise,fspecial(average,5));
4 img_median=medfilt2(img_noise);%一次中值滤波
5 img_median2=medfilt2(img_median);%二次中值滤波

技术图片

2.6最大值,最小值滤波器

技术图片

 

 技术图片

技术图片

利用最大值滤波器消除胡椒噪声污染图像的matlab程序如下。

1 img=imread(csboard.tif);
2 [M,N]=size(img);
3 R=imnoise2(salt & pepper,M,N,0.1,0);
4 img_noise=img;
5 img_noise(R==0)=0;
6 img_noise=double(img_noise);
7 imwrite(uint8(img_noise),csbord_pepper.jpg);
8 img_max=imdilate(img_noise,ones(3,3));
9 imwrite(uint8(img_max),cameraman_saltpepper_max.jpg);

技术图片

利用最小值滤波器消除盐噪声污染图像的matlab程序如下。

1 img=imread(csboard.tif);
2 [M,N]=size(img);
3 R=imnoise2(salt & pepper,M,N,0,0.1);
4 img_noise=img;
5 img_noise(R==1)=255;
6 img_noise=double(img_noise);
7 imwrite(uint8(img_noise),csbord_salt.jpg);
8 img_min=imerode(img_noise,ones(3,3));
9 imwrite(uint8(img_min),cameraman_saltpepper_min.jpg);

技术图片

 

图像复原MATLAB实现

标签:code   average   最大值   最小   ima   one   模型   rgb2gray   mat   

原文地址:https://www.cnblogs.com/henuliulei/p/10847052.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!