圖像復原MATLAB實現
阿新 • • 發佈:2019-05-11
最小值 color tla div 最小 col msh 前言 9.png
前言:本篇博客先介紹濾波器濾除噪聲,再介紹濾波器復原,側重於程序的實現。
一:三種常見的噪聲
二:空間域濾波
空間域濾波復原是在已知噪聲模型的基礎上,對噪聲的空間域進行濾波。
空間域濾波復原方法主要包括:
均值濾波器
算術均值濾波器
幾何均值濾波器
諧波均值濾波器
逆諧波均值濾波器
順序統計濾波器
中值濾波器
最大值/最小值濾波器
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,[]);
圖像復原MATLAB實現