2014-7自编数字图像处理实验-参考答案 下载本文

新疆大学信息科学与工程学院

PSF=fspecial('motion',LEN,THETA); E=imfilter(a,PSF,'circular','conv'); LEN=100; THETA=10;

PSF=fspecial('motion',LEN,THETA); F=imfilter(a,PSF,'circular','conv'); LEN=20; THETA=10;

PSF=fspecial('motion',LEN,THETA); M=imfilter(a,PSF,'circular','conv'); subplot(2,4,1),imshow(a); subplot(2,4,2),imshow(e); subplot(2,4,3),imshow(f); subplot(2,4,4),imshow(m); subplot(2,4,5),imshow(E); subplot(2,4,6),imshow(F); subplot(2,4,7),imshow(M);

3、对1,2产生的图像分别进行复原,选用逆滤波法,改进逆滤波器法进行图像复原.(需要编程,为选作题),显示处理结果。

4、对1,2产生的图像分别进行复原,选用维纳滤波器进行图像复原,显示处理结果。

参考程序如下:

在1,2产生的图像后可加一段:

figure,

wnr1=deconvwnr(b,PSF); subplot(2,3,1),imshow(wnr1); wnr2=deconvwnr(d,PSF); subplot(2,3,2),imshow(wnr2); wnr3=deconvwnr(e,PSF); subplot(2,3,3),imshow(wnr3); wnr4=deconvwnr(f,PSF); subplot(2,3,4),imshow(wnr4); wnr5=deconvwnr(m,PSF); subplot(2,3,5),imshow(wnr5);

5、对1,2产生的图像使用维纳滤波图像复原(deconvwnr)、约束最小平方滤波图像复原(deconvreg)2种方法任一种去实现,设置不同参数,比较复原效果。(选作,提示:可参看相关参考书实现deconvreg函数功能)

【思考题】

1、逆滤波器存在什么病态问题,如何改进?

答:复原由退化函数H退化的图像最直接的方法是直接逆滤波。在方法中,用退化函数除退化图像的傅立叶变换来计算原始图像的傅立叶变换。

37

新疆大学信息科学与工程学院

即使我们知道退化函数,也可能无法准确复原未退化的图像。因为噪声是一个随机函数,其傅氏变换未知。实际应用逆滤波复原方法时存在病态的问题,即在频谱域中对图像信号的那些频谱点上,若:H(u,v)=0,而噪声N(u,v)<>0,则 N(u,v)/H(u,v)>>F(u,v),面目全非,这种恢复会出现病态性。由上述方法进行图像复原时,由于H(u,v)在分母上,当u-v平面上的某引起点或区域H(u, v)很小或等于零,即出现了零点时, 就会导致不稳定解。因此,即使没有噪声,一般也不可能精确地复原f(x, y)。如果考虑噪声项N(x, y), 则出现零点时, 噪声项将被放大,零点的影响将会更大,对复原的结果起主导地位, 这就是无约束图像复原模型的病态性质。它意味着退化图像中小的噪声干扰在H(u, v)取得很小值的那些频谱上将对恢复图像产生很大的影响。由简单的光学分析知道,在超出光学系统的绕射极限时,H(u, v)将很小或等于零,因此对多数图像直接采用逆滤波复原会遇到上述求解方程的病态性。 改进:

即如果退化为零或非常小的值,则N(u,v)/H(u,v)之比很容易决定复原函数的值。

1)、在H(u,v)=0处,人为仔细设置H-1(u,v)值,使得这些频谱点附近, N(u,v)/H(u,v)对^F(u,v)影响小些

2)、窄带H(u,v),相比噪声具低通特性。

2、维纳滤波适用于什么场合?有何缺陷?

答:逆滤波较简单,但对噪声有放大作用,而维纳滤波则抑制噪声,维纳滤波即寻找一个滤波器,使得复原后的图像与原始图像的方差最小,即

1)、适用于假设图像和噪声不相关,且h(x,y)有零均值(平稳随机过程),退化系统线性时不变

2)、信噪比较高时,等同逆滤波

3)、大多数情况下较满意,但信噪比较低时,效果不好,由于以平稳随机过程为基础,线性时不变条件不满足,与实际情况有差距;另外,最小均方误差准则与人眼的视觉准则并不匹配。

【实验报告】

1、对上述操作,要求编程,并附图像的显示结果。

2、实验报告写明实验题目,可简写实验原理,实验内容,详细写实验过程和实验结果分析,要求附相关程序。按格式书写,将结果贴入相应位置 3、回答思考题,写在实验报告上

38

新疆大学信息科学与工程学院

实验6 MATLAB实现图像分割(2学时)

【实验内容】 一、图像分割

1、任选一副图像,对实验图像用edge函数实现roberts算子、sobel、log等算子检测边缘,并对比显示其结果,评价一下各算子对于噪声条件下边界检测的性能。

参考程序如下:

I=imread('rice.png');

K=imnoise(I,'salt & pepper',0.04); BW1=edge(I,'roberts'); BW2=edge(I,'sobel'); BW3=edge(I,'log'); BW4=edge(K,'roberts'); BW5=edge(K,'sobel'); BW6=edge(K,'log');

subplot(3,3,1),imshow(I),title('?ê?í???');

subplot(3,3,2),imshow(K),title('?ó?·????éùí?');

subplot(3,3,3),imshow(BW1),title('?í?roberts±??μ?ì2a'); subplot(3,3,4),imshow(BW2),title('?í?sobel±??μ?ì2a'); subplot(3,3,5),imshow(BW3),title('?í?log±??μ?ì2a');

subplot(3,3,6),imshow(BW4),title('?ó??roberts±??μ?ì2a'); subplot(3,3,7),imshow(BW5),title('?ó??sobel±??μ?ì2a'); subplot(3,3,8),imshow(BW6),title('?ó??log±??μ?ì2a'); 参考程序如下:

I=imread('eight.tif'); imshow(I)

BW1=edge(I,'roberts');

figure ,imshow(BW1),title('用Roberts算子') BW2=edge(I,'sobel');

figure,imshow(BW2),title('用Sobel算子 ') BW3=edge(I,'log');

figure,imshow(BW3),title('用拉普拉斯高斯算子') 得到:

39

新疆大学信息科学与工程学院

比较提取边缘的效果可以看出,sober算子是一种微分算子,对边缘的定位较精确,但是会漏去一些边缘细节。而Laplacian-Gaussian算子是一种二阶边缘检测方法,它通过寻找图象灰度值中二阶过零点来检测边缘并将边缘提取出来,边缘的细节比较丰富。通过比较可以看出Laplacian-Gaussian算子比sober算子边缘更完整,效果更好。

2、任选一副背景和前景区别较大的灰度图像,对该图像进行二值化处理(im2Bw,设置不同阈值实现),绘制该图像直方图,利用双峰法和迭代法估计设置其阈值,然后利用计算出的阈值对测试图像进行分割处理,结果显示原图像、处理后的分割图像及相应的分割阈值,观察不同阈值的分割效果。

参考程序如下: clear;

close all;

I0=imread(‘cell.tif’);

I1=im2bw(I0,0.3);%二值化处理 I1=im2bw(I0,0.7);%二值化处理 figure,

subplot(3,2,1),imshow(I0),title(‘原图’);

subplot(3,2,2),imhist(I0),title(‘原图直方图’); subplot(3,2,3),imshow(I1),title(‘二值化图,T=0.3’);

subplot(3,2,4),imhist(I1),title(‘二值化图的直方图,T=0.3’);

40