OpenCV学习笔记二.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenCV学习笔记(二) 五 形态学操作 形态学操作 简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。 最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation)。 他们的运用广泛: 消除噪声 分割(isolate)独立的图像元素,以及连接(join)相邻的元素。 寻找图像中的明显的极大值区域或极小值区域。 腐蚀操作 腐蚀在形态学操作家族里是膨胀操作的孪生姐妹。它提取的是内核覆盖下的相素最小值。 进行腐蚀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最小相素值提取,并代替锚点位置的相素。 我们使用腐蚀操作。从下面的结果图我们看到亮区(背景)变细,而黑色区域(字母)则变大了。 腐蚀操作函数原型: void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar borderValue=morphologyDefaultBorderValue() ) 1 可以看到前三个是必要的参数,后面都有默认的参数。 InputArray kernel腐蚀操作的内核 膨胀操作 此操作将图像 A 与任意形状的内核 (B),通常为正方形或圆形,进行卷积。 内核 B 有一个可定义的 锚点, 通常定义为内核中心点。 进行膨胀操作时,将内核 B 划过图像,将内核 B 覆盖区域的最大相素值提取,并代替锚点位置的相素。显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation ) void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar borderValue=morphologyDefaultBorderValue() ) 1 2 开运算(Opening) 开运算是通过先对图像腐蚀再膨胀实现的。 dst = open( src, element) = dilate( erode( src, element ) ) 能够排除小团块物体(假设物体较背景明亮) 闭运算(Closing) 闭运算是通过先对图像膨胀再腐蚀实现的。 dst = close( src, element ) = erode( dilate( src, element ) ) 能够排除小型黑洞(黑色区域)。 形态梯度(Morphological Gradient) 膨胀图与腐蚀图之差 dst = morph_{grad}( src, element ) = dilate( src, element ) - erode( src, element 顶帽(Top Hat) 原图像与开运算结果图之差 dst = tophat( src, element ) = src - open( src, element ) 黑帽(Black Hat) 闭运算结果图与原图像之差 dst = blackhat( src, element ) = close( src, element ) – src 六 图像的放大和缩小 图像金字塔(Image Pyramids) 一个图像金字塔是一系列图像的集合 - 所有图像来源于同一张原始图像 - 通过梯次向下采样获得,直到达到某个终止条件才停止采样。 有两种类型的图像金字塔常常出现在文献和应用中: 高斯金字塔(Gaussian pyramid): 用来向下采样 拉普拉斯金字塔(Laplacian pyramid): 用来从金字塔低层图像重建上层未采样图像 向下采样导致了,图像放大,造成模糊 向上采样会导致丢失信息,因为他缩小了图像 向上采用函数原型: void pyrUp(InputArray src, OutputArray dst, const Size dstsize=Size(), int borderType=BORDER_DEFAULT ) 向下采用函数原型: void pyrDown(InputArray src, OutputArray dst, const Size dstsize=Size(), int borderType=BORDER_DEFAULT ) 实例: //将图像放大两倍 pyrUp(src, dst, Size(src.cols

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档