前言:本篇博客先介绍滤波器滤除噪声,再介绍滤波器复原,侧重于程序的实现。
一:三种常见的噪声
二:空间域滤波
空间域滤波复原是在已知噪声模型的基础上,对噪声的空间域进行滤波。
空间域滤波复原方法主要包括:
均值滤波器
算术均值滤波器
几何均值滤波器
谐波均值滤波器
逆谐波均值滤波器
顺序统计滤波器
中值滤波器
最大值/最小值滤波器
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,[]);
原文:https://www.cnblogs.com/henuliulei/p/10847052.html