实验六 图像复原
实验目的:
- 掌握如何对仅有噪声污染情况下的图像退化模型进行建模;
- 掌握噪声估计方法;
- 掌握仅有噪声的复原方法;
- 掌握直接逆滤波和维纳滤波方法。
实验内容:
- 1)对灰度图像’ckt_board.png’添加均值为0,方差为0.01的高斯噪声;
2)使用函数roipoly选择尽可能与背景一样无特色的区域;
3)参照函数histroi画出ROI区域的直方图;
4)使用函数statmoments计算出直方图的均值和方差;
5)使用函数imnoise2产生相应噪声的直方图。要求给出以交互式产生的ROI图、ROI直方图、使用函数imnoise2产生的直方图,并使用函数title()为得到每幅图像取一个合适的名字,以便区分。
请将实验代码贴在此处: |
f=imread('ckt_board.png'); g=imnoise(f,'gaussian',0,0.01); imshow(g);title('添加高斯噪声'); B=roipoly(f); imshow(B); title('选择与背景一样无特色的区域'); [u,nuv]=statmoments(p,2); num=sum(B(:)); gaus=imnoise2('gaussian',num,1,148,20); histogram(gaus,256);title('imnoise2产生的直方图,'); |
请将运行结果贴在此处: |
1)对灰度图像’ckt_board.png’添加均值为0,方差为0.01的高斯噪声;
2)使用函数roipoly选择尽可能与背景一样无特色的区域;
3)参照函数histroi画出ROI区域的直方图;
4)使用函数statmoments计算出直方图的均值和方差;
5)使用函数imnoise2产生相应噪声的直方图。
|
3. 1)生成反调和均值滤波,对‘circuit-board-pepper.tif’、‘circuit-board-salt.tif’进行复原。
2)对图片‘ckt-board-saltpep.tif’,采用一般的中值滤波器和自适应中值滤波器完成滤波,观察得到的结果。
请将实验代码贴在此处: |
f=imread('ckt_board.tif'); f=tofloat(f); [m,n]=size(f); r=imnoise2('salt & pepper',m,n,0.1,0); gp=f; gp(r==1)=0; figure subplot(221),imshow(gp);title('circuit-boart-pepper'); r=imnoise2('salt & pepper',m,n,0,0.1); gs=f; gs(r==1)=255; subplot(222),imshow(gs);title('circuit-boart-salt'); fp=spfilt(gp,'chmean',3,3,1.5); subplot(223),imshow(fp);title('中值滤波器'); gg=imnoise(f,'salt & pepper',0.25); res = adpmedian(gg,15); subplot(224),imshow(res);title(' 自适应中值滤波器'); |
请将运行结果贴在此处: |
|
4. 1)完成有模糊的、有噪声图像的建模。
2)用直接逆滤波方法,维纳滤波方法恢复模糊的噪声图像。
请将实验代码贴在此处: |
1) clear;clc;close all; %图像退化建模 f=checkerboard(); %f=imread('rice.png'); f=im2double(f); [m,n]=size(f); psf=fspecial('motion',7,45); g=imfilter(f,psf,'circular'); noise=imnoise2('gaussian',m,n,0,sqrt(0.001)); g=g+noise; %imshow(pixeldup(g,8),[]); figure subplot(121),imshow(f,[]);title('原图简单处理'); subplot(122),imshow(g,[]);title('模糊和有噪声的图像建模后'); 2) %直接逆滤波/信噪比为0 res1=deconvwnr(g,psf); figure subplot(121),imshow(res1,[]);title('直接逆滤波/信噪比为0'); %信噪比为常数 sn=abs(fft2(noise)).^2; sf=abs(fft2(f)).^2; na=sum(sn(:))/numel(noise); fa=sum(sf(:))/numel(f); nspr=fa/na; res2=deconvwnr(g,psf,nspr); subplot(122),imshow(res2,[]);title('信噪比为常数'); %自相关函数 ncorr=fftshift(real(ifft2(sn))); fcorr=fftshift(real(ifft2(sf))); res3=deconvwnr(g,psf,ncorr,fcorr); res4=edgetaper(res3,psf); figure subplot(121),imshow(res3,[]);title('res3'); subplot(122),imshow(res4,[]);title('res4'); |
请将运行结果贴在此处: |
1.完成有模糊的、有噪声图像的建模。 2.用直接逆滤波方法,维纳滤波方法恢复模糊的噪声图像。
|