《数字图像处理(MATLAB版)》实验指导书
——————————————————————————————————————————
B) 对图像‘text.tif’进行腐蚀操作。 BW=imread('text.tif'); se=strel('line',11,90); BW2=imerode(BW,se); imshow(BW)
figure,imshow(BW2) 3. 膨胀与腐蚀的综合使用
A) 从原始图像‘circbw.tif’中删除电流线,仅保留芯片对象。 方法一:先腐蚀(imerode),再膨胀(imdilate); BW1=imread('circbw.tif'); imshow(BW1)
se=strel('rectangle',[40 30]); BW2=imerode(BW1,se); figure,imshow(BW2)
BW3=imdilate(BW2,se);
%选择适当大小的矩形结构元素 %先腐蚀,删除较细的直线 %再膨胀,恢复矩形的大小
figure,imshow(BW3)
方法二:使用形态开启函数(imopen)。 BW1=imread('circbw.tif'); imshow(BW1)
se=strel('rectangle',[40 30]); BW2=imopen(BW1,se); figure,imshow(BW2)
B) 改变结构元素的大小,重新进行开启操作,观察处理结果。 se=strel(‘rectangle’,[20 10]); se=strel(‘rectangle’,[50 40]);
C) 置结构元素大小为[4 3],同时观察形态开启(imopen)与闭合(imclose)的效
果,总结形态开启与闭合在图像处理中的作用。 I=imread('circbw.tif'); imshow(I)
se=strel('rectangle',[4 3]); I1=imopen(I,se); %开启操作 I2=imclose(I,se); %闭合操作 figure,imshow(I1) figure,imshow(I2)
———————————————————————————————————————— 24
湖南理工学院信息与通信工程学院
%开启操作
《数字图像处理(MATLAB版)》实验指导书
——————————————————————————————————————————
D) 综合实例
I=imread('Plane2.jpg');
level = graythresh(I); %得到合适的阈值 bw = im2bw(I,level); %二值化
SE = strel('square',3); %设置膨胀结构元素 BW1 = imdilate(bw,SE); %膨胀 SE1 = strel('arbitrary',eye(5)); %设置腐蚀结构元素 BW2 = imerode(bw,SE1); %腐蚀
BW3 = bwmorph(bw, 'open'); %开运算 BW4 = bwmorph(bw, 'close'); %闭运算
imshow(I);
figure,imshow(bw); figure,imshow(BW1); figure,imshow(BW2); figure,imshow(BW3);
figure,imshow(BW4); 4. *高帽与低帽变换
A) 读入图像‘pearlite.tif’,分别显示其高帽变换与低帽变换结果,并与原图
像比较。(设se=strel('disk',5);)。 I=imread('pearlite.tif'); subplot(221),imshow(I) se=strel('disk',5); J=imtophat(I,se);
subplot(222),imshow(J) K=imbothat(I,se);
subplot(223),imshow(K)
L=imsubtract(imadd(J,I),K); subplot(224),imshow(L)
B) 要求显示在一个窗口中。
三、思考题
1. 结合实验内容,评价腐蚀运算与膨胀运算的效果。 2. 结合实验内容,评价开运算与闭运算的效果。 3. 腐蚀、膨胀、开、闭运算的适用条件是什么?
———————————————————————————————————————— 25
湖南理工学院信息与通信工程学院
《数字图像处理(MATLAB版)》实验指导书
——————————————————————————————————————————
实验八 图像复原
一、实验目的
1. 掌握噪声模拟和图像滤波函数的使用方法 2. 了解图像复原的Matlab实现方法
二、实验内容
1. 模糊与噪声
A) 对图像‘flowers.tif’分别采用运动PSF和均值滤波PSF进行模糊。 I=imread('flowers.tif');
I=I(10+[1:256],222+[1:256],:); %剪切图像 imshow(I) len=30; %运动位移 theta=10;
%运动角度
PSF=fspecial('motion',len,theta);
blurred=imfilter(I,PSP,'circular','conv'); figure,imshow(blurred)
I=imread('flowers.tif'); imshow(I)
H=fspecial('motion',50,45); %运动PSP motionblur=imfilter(I,H); figure,imshow(motionblur) H=fspecial(‘disk’,10); %均值滤波PSP
averageblur=imfilter(I,H); figure,imshow(averageblur)
B) 在上述模糊图像上再添加噪声
J=imnoise(motionblur,'salt & pepper'); figure,imshow(J) 2. 维纳滤波复原
A) 使用维纳滤波复原函数deconvwnr复原无噪声模糊图像。 len=30; theta=10; PSF=fspecial('motion',len,theta);
————————————————————————————————————————湖南理工学院信息与通信工程学院
26
《数字图像处理(MATLAB版)》实验指导书
——————————————————————————————————————————
blurred=imfilter(I,PSF,'circular','conv'); figure,imshow(blurred)
wnr1=deconvwnr(blurred,PSF); %真实PSF figure,imshow(wnr1)
%非真实PSF
wnr2=deconvwnr(blurred,fspecial('motion',2*len,theta)); figure,imshow(wnr2) %非真实PSF
wnr3=deconvwnr(blurred,fspecial('motion',len,2*theta)); figure,imshow(wnr3)
B) *使用维纳滤波复原函数deconvwnr复原模糊噪声图像。 PSF=fspecial('motion',len,theta);
blurred=imfilter(I,PSF,'circular','conv'); noise=0.1*randn(size(I));
BlurredNoisy=imadd(blurred,im2uint8(noise)); figure,imshow(BlurredNoisy)
wnr4=deconvwnr(BlurredNoisy,PSF); figure,imshow(wnr4)
C) *设置信噪比和相关函数的维纳滤波复原(p179图9.12)。
NSR=sum(noise(:).^2)/sum(im2double(I(:)).^2); %计算信噪比
wnr5=deconvwnr(BlurredNoisy,PSF,NSR); figure,imshow(wnr5) %设置信噪比的复原结果 NP=abs(fftn(noise)).^2; %噪声能量谱密度 NCORR=fftshift(real(ifftn(NP))); %噪声自相关函数 IP=abs(fftn(im2double(I))).^2; %图像能量谱密度 ICORR=fftshift(real(ifftn(IP))); %图像自相关函数
wnr6=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR); figure,imshow(wnr6) %设置自相关函数的复原结果
三、思考题
1. 常见的图像退化模型有哪些种类? 2. 不同的PSF对复原效果有什么影响?
———————————————————————————————————————— 27
湖南理工学院信息与通信工程学院

