数字图像处理第三次试验:图像复原、图像分割

数字图像处理第三次试验:图像复原、图像分割

  • 前前言
  • 前言
  • 一、实验目的
  • 二、实验主要仪器设备
  • 三、实验原理
  • 四、实验内容
  • 五、实验步骤
  • 六、实验程序
  • 七、实验报告要求
  • 八、预习要求
  • 九、思考题

前前言

本次实验老师要求图像复原、图像分割两个实验写到一个实验报告内。因此为区分两个实验,我在标明括号时重新标号,以示区分。

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

(1)了解图像复原的原理。
(2)掌握常用的图像复原方法。
(1)熟悉MATLAB图像处理工具箱的使用方法。
(2)熟悉图像边缘检测的方法。
(3)理解边缘检测在图像分割中的应用。

二、实验主要仪器设备

(1)台式计算机或笔记本电脑
(2)MATLAB软件(含图像处理工具箱)
(3)典型的灰度、彩色图像文件。

三、实验原理

(1)了解不同条件下的图像退化成因和处理方法。
(2)根据退化的数学模型对退化图像进行处理,恢复原始图像。
(1)MATLAB采用查分、梯度、拉普拉斯算子以及各种高通滤波处理方法可以对图像边缘进行检测。检测的方法有梯度算子、拉普拉斯算子、方向算子、坎尼算子,各种方法实现的原理可以参考本章中的相关各节的内容。

四、实验内容

(1)利用维纳滤波对有噪声模糊图像进行复原。
(2)比较直接维纳滤波、设置信噪比参数、设置噪声和自相关函数这三种情况下的图像复原效果。
(1)利用MATLAB图像处理工具箱提供的DEMOS进行实验。
(2)利用MATLAB图像处理工具箱的边缘检测函数编程进行边缘检测。
(3)理解边缘检测在图像分割中的应用,比较各种边缘检测方法。

五、实验步骤

(1)选择图7.23所示的原始图像作为测试图像。
(2)设计图像复原算法。
(3)设置维纳滤波中的相关参数。
(4)显示原始图像和复原后的重建图像。
(5)通过修改这些参数来观察参数对图像复原效果的影响。
(1)仿照本书例题,选择不同图像、不同的检测方法、不同的阈值,编程实现边缘检测并观察检测结果。

六、实验程序

I=imread('BaboonRGB.tif');
%I=imread('Barbara.tif');
%I=imread('eight.tif');
figure,subplot(3,3,1),imshow(I);title('原始图像');
LEN=45; THETA=20; %运动模型参数
PSF=fspecial('motion',LEN,THETA); %运动模糊模型
B=imfilter(I,PSF,'circular','conv'); %模糊化图像
subplot(3,3,2),imshow(B); title('运动图像'); 
noise=imnoise(zeros(size(I)),'gaussian',0,0.01);
C=imnoise(B,'gaussian',0,0.01);
subplot(3,3,3),imshow(C); title('加噪图像');
NSP1=sum(noise(:).^2)/sum(im2double(I(:)).^2); 
NP=abs(fftn(noise)).^2;
NCORR=fftshift(real(ifftn(NP)));%噪声自相关函数
IP=abs(fftn(im2double(I))).^2;
ICORR=fftshift(real(ifftn(IP)));%图像自相关函数 
J1=deconvwnr(C,PSF);
subplot(3,3,4),imshow(J1);title('直接维纳滤波');
J2=deconvwnr(C,PSF,NSP1);
subplot(3,3,5),imshow(J2);title('设置信噪比参数的维纳滤波');
J3=deconvwnr(C,PSF,NCORR,ICORR);
subplot(3,3,6),imshow(J3);title('设置噪声和自相关函数的维纳滤波');
subplot(3,3,7),imshow(deconvwnr(C,fspecial('motion',2*LEN,THETA)));title('设置较长的PSF还原');
subplot(3,3,8),imshow(deconvwnr(C,fspecial('motion',LEN,2*THETA)));title('设置较陡峭的PSF还原');

数字图像处理第三次试验:图像复原、图像分割_第1张图片
数字图像处理第三次试验:图像复原、图像分割_第2张图片
数字图像处理第三次试验:图像复原、图像分割_第3张图片

数字图像处理第三次试验:图像复原、图像分割_第4张图片

I=imread('rice.png');
subplot(3,3,1),imshow(I); title('原图像');
bw1=edge(I,'roberts');
subplot(3,3,2),imshow(bw1,[]); title('Roberts算子检测图像');
bw2=edge(I,'prewitt');
subplot(3,3,3),imshow(bw2,[]); title('Prewitt算子检测图像');
bw3=edge(I,'sobel');
subplot(3,3,4),imshow(bw3,[]); title('Sobel算子检测图像');
bw4=edge(I,'log');
subplot(3,3,5),imshow(bw4,[]); title('LoG算子检测图像');
bw5=edge(I,'canny');
subplot(3,3,6),imshow(bw5,[]); title('Canny算子检测图像');
 
I=imread('eight.tif');
subplot(3,3,1),imshow(I); title('原图像');
bw1=edge(I,'roberts');
subplot(3,3,2),imshow(bw1,[]); title('Roberts算子检测图像');
bw2=edge(I,'prewitt');
subplot(3,3,3),imshow(bw2,[]); title('Prewitt算子检测图像');
bw3=edge(I,'sobel');
subplot(3,3,4),imshow(bw3,[]); title('Sobel算子检测图像');
bw4=edge(I,'log');
subplot(3,3,5),imshow(bw4,[]); title('LoG算子检测图像');
bw5=edge(I,'canny');
subplot(3,3,6),imshow(bw5,[]); title('Canny算子检测图像');

数字图像处理第三次试验:图像复原、图像分割_第5张图片
数字图像处理第三次试验:图像复原、图像分割_第6张图片

七、实验报告要求

(1)说明图像复原原理与算法
(2)原始图像和复原后的重建图像
(3)对同一副图像,比较直接维纳滤波、设置信噪比参数、设置噪声和自相关函数这三种情况下的图像复原效果。
(4)回答思考题
(5)撰写心得和体会
(1)说明利用MATLAB图像处理工具箱进行边缘检测的方法。
(2)记录某一图像经各种检测方法检测后的图像。
(3)分析检测结果。
(4)回答思考题。
(5)撰写心得和体会。

八、预习要求

(1)了解图像复原的基本原理和算法
(2)掌握IPT中有关图像复原的函数
(3)画出维纳滤波复原方法的流程框图,编写相应的程序。
(1)了解MATLAB图像处理工具箱中边缘检测函数的功能。
(2)了解图像边缘检测的原理。

九、思考题

(1)比较维纳滤波复原方法与其他复原方法的适用范围。
答:维纳滤波在图像受噪声影响时效果比逆滤波要好,而且噪声越强优势越明显。
(2)为了尽量提高图像重建质量,应该如何设置其中的参数?
答:应尽可能详细且正确地设定复原函数所对应的参数。
(1)说明图像边缘检测的原理
答:边缘是图像上灰度变化最明显的地方,传统边缘检测利用此特点,对图像各像素点进行求微分或二阶微分来定位边缘像素点。由灰度变化特点,可将边缘类型分为阶梯状、脉冲状和屋顶状三种。对于阶梯状,图像边缘点对应一阶微分图像的峰值和二阶微分图像的零交叉处;对于脉冲状和屋顶状边缘,边缘点对应一阶导数的零交叉和二阶导数的峰值。
(2)比较不同图像的边缘检测的差别,并分析原因。
答:对于不同算法对不同图像的运算及落实,发现其优劣各有不同。

你可能感兴趣的:(数字图像处理,matlab,图像处理,计算机视觉)