《计算机视觉 形态学 边缘检测.doc》由会员分享,可在线阅读,更多相关《计算机视觉 形态学 边缘检测.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流计算机视觉 形态学 边缘检测.精品文档.实验二 形态算子一、实验目的与要求目的:学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力。要求:上机运行,调试通过。二、 实验设备: 计算机、Matlab软件、VC+或C语言软件 三、实验内容:利用VC+/C或MatLab工具箱中关于数学形态学运算的函数,对二值图像进行膨胀、腐蚀和开运算、闭运算处理。四、实验原理: 膨胀: 腐蚀: 开运算: 闭运算:五、实验报告内容(1)描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果,并进行必要的讨论,必须
2、包括原始图像及其计算/处理后的图像。(2)结合实验内容,评价腐蚀、膨胀以及开运算、闭运算的效果,并说明它们各自适用条件。%对二值图像做腐蚀、膨胀以及开运算和闭运算close all;clc;clear;I=imread(C:Documents and SettingsOwnerMy DocumentsMATLABroad3.jpg); I2=im2bw(I); %对读入图像做二值化处理m,n=size(I2);subplot(2,3,1),imshow(I)title(原始图像);subplot(2,3,2),imshow(I2)title(二值图像);s=1 1;1 0; %腐蚀膨胀算子%腐
3、蚀运算for i=1:m-1 for j=1:n-1 if (I2(i,j)=1)&(I2(i+1,j)=1)&(I2(i,j+1)=1) I3(i,j)=1; end endendsubplot(2,3,3),imshow(I3)title(图像腐蚀1次);%膨胀运算for i=1:m-1 for j=1:n-1 if (I2(i,j)=1)|(I2(i+1,j)=1)|(I2(i,j+1)=1) I4(i,j)=1; end endendsubplot(2,3,4),imshow(I4)title(图像膨胀1次);%开运算for i=1:m-2 for j=1:n-2 if (I3(i,j
4、)=1)|(I3(i+1,j)=1)|(I3(i,j+1)=1) I5(i,j)=1; end endendsubplot(2,3,5),imshow(I5)title(开运算);%闭运算for i=1:m-2 for j=1:n-2 if (I4(i,j)=1)&(I4(i+1,j)=1)&(I4(i,j+1)=1) I6(i,j)=1; end endendsubplot(2,3,6),imshow(I6)title(闭运算);由上图易知,原图像经1次腐蚀后,图像中的一些不连续点或线被腐蚀掉;而原图像经1次膨胀后,图像中的一些不连续点或线被连接在一起或膨胀。原图像经开运算(先腐蚀后膨胀),
5、图像原先那些不完全连续部分,边缘孤点等被去掉,主体部分得以加强,因而图像特征明显,且清晰。原图像经闭运算(先膨胀后腐蚀),图像原先那些不完全连续部分,大部分被去掉,只保留最基本特征部分,因而图像特征被明显削弱。实验三 边缘检测一、实验目的与要求目的:熟悉采用Roberts算子、Sobel算子、Prewitt算子、Laplacian算子和LOG算子检测数字图像的边缘。要求:上机运行,调试通过。二、 实验设备: 计算机、Matlab软件、VC+或C语言软件 三、实验内容利用VC+/C或MatLab中关于边缘检测的函数,分别采用Roberts算子、Sobel算子、Prewitt算子、Laplacia
6、n算子和LOG算子检测数字图像的边缘。四、实验原理两个具有不同灰度值的相邻区域之间总存在边缘,边缘是灰度值不连续的结果,这种不连续性通常可以利用求导数的方法方便地检测到。常用的边缘检测算子有Roberts算子、Sobel算子、Prewitt算子、LOG算子和Laplacian算子。Roberts算子是一种利用局部差分算子寻找边缘的算子,其模板如图:Sobel算子的两个卷积计算核如图:Prewitt算子的两个卷积计算核如图: LOG算子=高斯滤波+拉普拉斯边缘检测。 Laplacian算子是二阶导数的二维等效式,卷积核如图:五、实验报告内容(1)描述实验的基本步骤,给出各个算子取得的实验。(2)
7、结合实验内容,简述各个算子的效果、特点和适用范围。ps=(C:Documents and SettingsOwnerMy DocumentsMATLABroad3.jpg); %读取图像subplot(1,3,1)imshow(ps);title(原图像);ps=rgb2gray(ps);m,n=size(ps); %用Sobel微分算子进行边缘检测pa = edge(ps,sobel);subplot(1,3,2);imshow(pa);title(sobel边缘检测得到的图像);ps=(C:Documents and SettingsOwnerMy DocumentsMATLABroad3
8、.jpg); %读取图像subplot(1,3,1)imshow(ps);title(原图像);ps=rgb2gray(ps);m,n=size(ps); %用Roberts微分算子进行边缘检测pa = edge(ps,Roberts);subplot(1,3,2);imshow(pa);title(Roberts边缘检测得到的图像);ps=(C:Documents and SettingsOwnerMy DocumentsMATLABroad3.jpg); %读取图像subplot(1,3,1)imshow(ps);title(原图像);ps=rgb2gray(ps);m,n=size(ps
9、); %用Prewitt微分算子进行边缘检测pa = edge(ps,Prewitt);subplot(1,3,2);imshow(pa);title(Prewitt边缘检测得到的图像);ps=(C:Documents and SettingsOwnerMy DocumentsMATLABroad3.jpg ); %读取图像subplot(1,3,1)imshow(ps);title(原图像);ps=rgb2gray(ps);m,n=size(ps); %用Sobel微分算子进行边缘检测pa = edge(ps,LOG);subplot(1,3,2);imshow(pa);title(LOG边
10、缘检测得到的图像);实验四 边缘检测一、实验目的与要求目的:加深对Canny边缘检测的原理的理解。要求:上机运行,调试通过。二、 实验设备: 计算机、Matlab软件、VC+或C语言软件 三、实验内容用Matlab语言(或C语言),编写Canny边缘检测器的Matlab(或C语言)函数;利用上述函数,对一副图像进行边缘检测;利用Matlab自带的Canny边缘检测函数对同一副图像进行边缘检测;比较上述两个结果。 四、实验步骤步1. 图像与高斯平滑滤波器卷积:步2. 使用一阶有限差分计算偏导数阵列P与Q:步3. 计算梯度幅值与方向角:步4. 非极大值抑制(NMS ) : 去掉幅值局部变化非极大的
11、点 * 将梯度角离散为圆周的四个扇区之一,以便用33的窗口 作抑制运算 * 方向角离散化:* 抑制,得到新幅值图:步5. 阈值化取高低两个阈值作用于幅值图Ni,j,得到两个边缘图:高阈值和低阈值边缘图。连接高阈值边缘图,出现断点时,在低阈值边缘图中的8邻点域搜寻边缘点。五、实验报告内容(1)描述实验的基本步骤,给出实验程序代码及必要说明。ps=imread(C:Documents and SettingsOwnerMy DocumentsMATLABroad3.jpg); %读取图像subplot(1,3,1)imshow(ps);title(原图像);ps=rgb2gray(ps);m,n=size(ps); pa = edge(ps,canny);subplot(1,3,2);imshow(pa);title(canny边缘检测得到的图像);(2)结合实验内容,给出实验结果的分析和总结。