opencv图像的腐蚀与膨胀_第1页
opencv图像的腐蚀与膨胀_第2页
opencv图像的腐蚀与膨胀_第3页
opencv图像的腐蚀与膨胀_第4页
opencv图像的腐蚀与膨胀_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OpenCV 图像处理 -上机实验报告 3 1.实验题目:腐蚀与膨胀操作 2.实验目的: (1)如何使用 opencv 提供的两种最基本的形态学操作,腐蚀与膨 胀; (2)掌握 opencv 运行环境及腐蚀与膨胀的基本运行过程。 3.实验原理: (1)形态学操作:形态学操作就是基于形状的一系列图像处理操作, 通过将结构元素作用于输入图像来产生输出图像。基本的形态学操 作有腐蚀与膨胀,他们的应运广泛:消除噪声,分割独立的图像元 素,以及连接相邻的元素;寻找图像中明显的极大值区域或极小值 区域。 (2)膨胀:此操作将图像 A 与任意形状的内核(B) ,通常为正方形或 圆形,进行卷积;内核有一个可定义的锚点,通常定义为内核中心 点;进行膨胀操作时,将内核 B 画过图像,将内核 B 覆盖区域的最 大像素值提取,并代替锚点位置的像素。显然这一最大化操作会导 致图像中的亮区开始“扩展” 。 (3)腐蚀:它在形态学操作家族里是膨胀操作的孪生姐妹。它提取的 是内核覆盖下的像素最小值;进行腐蚀操作时,将内核 B 画过图像, 将内核 B 覆盖区域的最小像素值提取,并代替锚点位置像素,腐蚀 操作的结果是图片亮区变细,黑色区域变大。 4.实验结果: 5.源程序: #include #include #include #include #include #include using namespace std; using namespace cv; Mat src,erosion_dst,dilation_dst; int erosion_elem=0; int erosion_size=0; int dilation_elem=0; int dilation_size=0; int const max_elem=2; int const max_kernel_size=21; void Erosion(int ,void*); void Dilation(int ,void*); int main(int argc,char* argv) src=imread(“na.jpg“); if(!src.data) return -1; namedWindow(“Erosion Demo“, CV_WINDOW_AUTOSIZE ); namedWindow(“Dilation Demo“, CV_WINDOW_AUTOSIZE ); cvMoveWindow(“Dilation Demo“,src.cols,0); createTrackbar(“Element:n0:Rectn1:Crossn2:Ellipse“,“E rosion Demo“, createTrackbar(“Kernel size:n 2n +1“,“Erosion Demo“, createTrackbar(“Element:n0:Rectn1:Crossn2:Ellipse“,“Dila tion Demo“, createTrackbar(“Kernel size:n 2n +1“,“Dilation Demo“, Erosion(0,0); Dilation(0,0); waitKey(0); return 0; void Erosion(int,void*) int erosion_type; if(erosion_elem=0)erosion_type=MORPH_RECT; else if(erosion_elem=1)erosion_type=MORPH_CROSS; else if(erosion_elem=2)erosion_type=MORPH_ELLIPSE; Mat element=getStructuringElement(erosion_type,Size(2*erosion_s ize+1,2*erosion_size+1), Point(erosion_size,erosion_size); erode(src,erosion_dst,element); imshow(“Eerosion Demo“,erosion_dst); void Dilation(int,void*) int dilation_type; if(dilation_elem=0)dilation_type=MORPH_RECT; else if(dilation_elem=1)dilation_type=MORPH_CROSS; else if(dilation_elem=2)dilation_type=MORPH_ELLIPSE; Mat element=getStructuringElement(dilation_type,Size(2*dilation _size+1,2*dilation_size+1), Point(dilation_size,dilation_size); erode(src,dilation_dst,element); imshow(“Dilation Demo“,dilation_dst); 实验总结: 通过本次实验,我再一次学到了一种图像处理的方法,了解并 使用 OpenCV 提供的两种最基本的形态学操作,腐蚀与膨胀及腐蚀和 膨胀的基本原理,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论