图像复原MATLAB实现

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

一:三种常见的噪声

 二:空间域滤波

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

  均值滤波器

    算术均值滤波器

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

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,[]);

猜你喜欢

转载自www.cnblogs.com/henuliulei/p/10847052.html