【OpenCV API 指南】形态学运算
- 本文为@源码人原创文章,转载请注明出处
- 文章链接:https://blog.****.net/q_z_r_s
腐蚀:
函数原型:void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() )
- src – 待处理图像;可以为任意通道数,但类型必须为 CV_8U, CV_16U, CV_16S, CV_32F` or ``CV_64F其中之一.
- dst – 与输入同等类型和大小的输出图像.
- element –用来腐蚀的结构元素; 如果element=Mat() , 使用 3 x 3 矩形结构元素.
- anchor – 元素中原点的位置; 默认值(-1, -1) 表示原点位于元素中心位置.
- iterations –腐蚀的次数.
- borderType – 边界处理方式.
- borderValue –边界处理方式.
数学原理:
膨胀:
函数原型:void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() )
- src – 待处理图像;可以为任意通道数,但类型必须为 CV_8U, CV_16U, CV_16S, CV_32F` or ``CV_64F其中之一.
- dst –与输入同等类型和大小的输出图像.
- element – 用来膨胀的结构元素; 如果element=Mat() , 使用 3 x 3 矩形结构元素.
- anchor – 元素中原点的位置; 默认值(-1, -1) 表示原点位于元素中心位置.
- iterations –膨胀的次数.
- borderType – 边界处理方式.
- borderValue – 边界处理方式.
数学原理:
膨胀:
函数原型: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() )
- src – 待处理图像;可以为任意通道数,但类型必须为 CV_8U, CV_16U, CV_16S, CV_32F` or ``CV_64F其中之一.
- dst – 与输入同等类型和大小的输出图像.
- element – 结构元素.
-
op –
可选的形态学操作方式如下:
- MORPH_OPEN - 开运算
- MORPH_CLOSE - 闭运算
- MORPH_GRADIENT - 形态学梯度
- MORPH_TOPHAT - “top hat”
- MORPH_BLACKHAT - “black hat”
- iterations – 迭代次数.
- borderType – 像素外插方法.
- borderValue – 边界值.
形态学操作原理:
阈值化:
函数原型:double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type)
参数说明:
- src – 输入图像 (单通道l, 8-bit 或者 32-bit 浮点型).
- dst – 与输入同等类型和大小的输出图像.
- thresh – 阈值.
- maxval –阈值化类型为THRESH_BINARY 和THRESH_BINARY_INV时使用的最大值.
- type – 阈值化类型.
数学原理: