threshold、morphologyEx函数总结

其函数原型如下:

double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)


参数信息:

第一个参数,InputArray类型的src,输入数组,填单通道 , 8或32位浮点类型的Mat即可。

第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放输出结果,且和第一个参数中的Mat变量有一样的尺寸和类型。

第三个参数,double类型的thresh,阈值的具体值。

第四个参数,double类型的maxval,当第五个参数阈值类型type取 THRESH_BINARY 或THRESH_BINARY_INV阈值类型时的最大值.

第五个参数,int类型的type,阈值类型,。

其它参数很好理解,我们来看看第五个参数,第五参数有以下几种类型

0: THRESH_BINARY  当前点值大于阈值时,设置为Maxval,也就是第四个参数,否则设置为0

1: THRESH_BINARY_INV 当前点值大于阈值时,设置为0,否则设置为Maxval

2: THRESH_TRUNC 当前点值大于阈值时,设置为阈值,否则不改变

3: THRESH_TOZERO 当前点值大于阈值时,不改变,否则设置为0

4: THRESH_TOZERO_INV  当前点值大于阈值时,设置为0,否则不改变

原文链接:

https://blog.csdn.net/gongzhitank/article/details/65462541

 

morphologyEx

 

函数原型

     void morphologyEx( InputArray src, OutputArray dst, int op

            , InputArray kernel, Point anchor = Point(-1,-1)

            , int iterations = 1, int borderType = BORDER_CONSTANT

            , const Scalar& borderValue = morphologyDefaultBorderValue() )

op:操作的类型,通过源码我们得知总共有以下几种类型:

enum MorphTypes{ 

      MORPH_ERODE = 0, //腐蚀

      MORPH_DILATE = 1, //膨胀

      MORPH_OPEN = 2, //开操作      先腐蚀后膨胀的操作

      MORPH_CLOSE = 3, //闭操作      先膨胀后腐蚀的操作

      MORPH_GRADIENT = 4, //梯度操作

      MORPH_TOPHAT = 5, //顶帽操作

      MORPH_BLACKHAT = 6, //黑帽操作

      MORPH_HITMISS = 7

};

kernel:用于膨胀操作的结构元素,如果取值为Mat(),那么默认使用一个3 x 3 的方形结构元素,可以使用getStructuringElement()来创建结构元素
anchor:参考点,其默认值为(-1,-1)说明位于kernel的中心位置。
borderType :边缘类型,默认为BORDER_CONSTANT。
borderValue :边缘值,用它的默认值即可。

结构元素获取:

Mat kernel = getStructuringElement(MORPH_RECT,Size(3,3));//创建一个矩形结构元素大小为3*3

其他元素:

  MORPH_CROSS  //十字型

  MORPH_ELLIPSE  //椭圆型

 原文链接

https://blog.csdn.net/qq_31918961/article/details/103722946

posted @ 2021-07-06 17:48  兴财啊  阅读(187)  评论(0编辑  收藏  举报