1. 程式人生 > >圖像復原MATLAB實現

圖像復原MATLAB實現

最小值 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實現