zoukankan      html  css  js  c++  java
  • 【转】cvMorphologyEx —不推荐使用

    在OpenCV中某些高级形态学变换用cvMorphologyEx函数完成,包括开运算,闭运算,标准形态梯度,白顶帽,黑顶帽运算。但是本博主不推荐使用该函数。 通过查看cvMorphologyEx的源代码,可以发现,在执行开、闭等运算,在进行第二步形态学腐蚀和膨胀时,该函数仍然采用与第一步相同的结构元素进行。这种方法在针对一般对称的结构元素情况是正确的,但是当结构元素为自定义的非对称结构元素时,结果图像会发生错误的偏移。 正确的方法是,如前面在开、闭运算的介绍中,执行第二步腐蚀、膨胀操作时,应采用结构元素的映射(反射)进行。因此,在本文中不提倡使用cvMorphologyEx函数。本文将通过一系列扩展的形态学变换函数替代该函数的功能,如:lhMorpOpen,lhMorpClose等,请参考本博客OpenCV和形态学系列文章。http://lh2078.blog.163.com 在这里仅给出该函数的简单描述。 函数:cvMorphologyEx void cvMorphologyEx( const CvArr* src, CvArr* dst, CvArr* temp, IplConvKernel* element, int operation, int iterations=1 ); src 输入图像. dst 输出图像. temp 临时图像,某些情况下需要 element 结构元素 operation 形态操作的类型: CV_MOP_OPEN - 开运算 CV_MOP_CLOSE - 闭运算 CV_MOP_GRADIENT - 形态梯度 CV_MOP_TOPHAT - "顶帽" CV_MOP_BLACKHAT - "黑帽" iterations 膨胀和腐蚀次数. 函数 cvMorphologyEx 在膨胀和腐蚀基本操作的基础上,完成一些高级的形态变换: 开运算 dst=open(src,element)=dilate(erode(src,element),element) 闭运算 dst=close(src,element)=erode(dilate(src,element),element) 形态梯度 dst=morph_grad(src,element)=dilate(src,element)-erode(src,element) "顶帽" dst=tophat(src,element)=src-open(src,element) "黑帽" dst=blackhat(src,element)=close(src,element)-src 临时图像 temp 在形态梯度以及对“顶帽”和“黑帽”操作时的 in-place 模式下需要。

  • 相关阅读:
    Windows7共享设置
    13-运算符
    13-数据类型转换
    06-移动web之flex布局
    09-sass
    08-less预处理器
    移动端必须掌握知识点
    11-JS变量
    10-响应式
    07-rem
  • 原文地址:https://www.cnblogs.com/freedesert/p/2612476.html
Copyright © 2011-2022 走看看