博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
形态学处理
阅读量:5226 次
发布时间:2019-06-14

本文共 1975 字,大约阅读时间需要 6 分钟。

 本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和腐蚀技术,来执行更加高级的形态学变换,如开闭运算、形态学梯度、“顶帽”、“黑帽”等等

void cv::morphologyEx( InputArray _src,OutputArray _dst, int op,      InputArray kernel, Pointanchor, int iterations, int borderType, constScalar& borderValue ) { //拷贝Mat数据到临时变量 Mat src = _src.getMat(), temp; _dst.create(src.size(), src.type()); Mat dst = _dst.getMat(); //一个大switch,根据不同的标识符取不同的操作 switch( op ) { case MORPH_ERODE: //腐蚀 erode( src, dst, kernel, anchor, iterations, borderType, borderValue ); break; case MORPH_DILATE: //膨胀 dilate( src, dst, kernel, anchor, iterations, borderType, borderValue ); break; case MORPH_OPEN: //开环 erode( src, dst, kernel, anchor, iterations, borderType, borderValue ); dilate( dst, dst, kernel, anchor, iterations, borderType, borderValue ); break; case CV_MOP_CLOSE: //闭环 dilate( src, dst, kernel, anchor, iterations, borderType, borderValue ); erode( dst, dst, kernel, anchor, iterations, borderType, borderValue ); break; case CV_MOP_GRADIENT://梯度 erode( src, temp, kernel, anchor, iterations, borderType, borderValue ); dilate( src, dst, kernel, anchor, iterations, borderType, borderValue ); dst -= temp; break; case CV_MOP_TOPHAT: //顶帽 即是原图像与开运算后的图像相减 if( src.data != dst.data ) temp = dst; erode( src, temp, kernel, anchor, iterations, borderType, borderValue ); dilate( temp, temp, kernel, anchor,iterations, borderType, borderValue ); dst = src - temp; break; case CV_MOP_BLACKHAT: //黑帽 即是闭运算后的图像减去原图像 if( src.data != dst.data ) temp = dst; dilate( src, temp, kernel, anchor, iterations, borderType, borderValue); erode( temp, temp, kernel, anchor, iterations, borderType, borderValue); dst = temp - src; break; default: CV_Error( CV_StsBadArg, "unknown morphological operation" ); } }
  • MORPH_OPEN – 开运算(Opening operation)
  • MORPH_CLOSE – 闭运算(Closing operation)
  • MORPH_GRADIENT -形态学梯度(Morphological gradient)
  • MORPH_TOPHAT - “顶帽”(“Top hat”)
  • MORPH_BLACKHAT - “黑帽”(“Black hat“)
膨胀与腐蚀的介绍可以参考这篇文章

转载于:https://www.cnblogs.com/haoxing990/p/4577225.html

你可能感兴趣的文章
兼容各种浏览器的透明层效果
查看>>
软件工程概论课总结
查看>>
UVA11255 Necklace Burnside、组合
查看>>
HDU 2859 Phalanx
查看>>
Docker生产实践(六)
查看>>
机器学习实战5-AdaBoost
查看>>
定制异常
查看>>
windows上配置pytorch
查看>>
《创业维艰》
查看>>
Java HashMap实现原理 源码剖析
查看>>
Oracle中start with...connect by子句的用法
查看>>
如何进行数据变换(转)
查看>>
delphi也可以使用C语言脚本 --Picoc脚本语言
查看>>
visio 如何扩大画布大小
查看>>
css权威指南读书笔记
查看>>
C语言中关联计数器的协同管理
查看>>
web-11. 层叠式表的属性与滤镜
查看>>
Vue
查看>>
表变量与临时表的优缺点(转)
查看>>
shell脚本图书
查看>>