OpenCV4入门教程097:用几何矩计算轮廓中心与横纵比过滤
索引地址:系列索引
OpenCV中提供了:
- moments()来计算图像中的中心矩。
- HuMoments()用于由中心矩计算Hu矩。
- contourArea函数计算轮廓面积
- arcLength函数来计算轮廓或者曲线长度。
Moments类
计算多边形3阶之前的所有矩。
1 |
|
- array 像素图(单通道、8位或浮点二维数组)或二维的( $ 1 \times N or N \times 1 $ )的点。
- binaryImage 如果为真,则所有非零图像像素视为1。该参数仅用于图像。
contourArea函数
该函数计算轮廓区域。与矩类似,使用格林公式计算面积。因此,如果使用drawContours或fillPoly绘制轮廓,则返回的区域和非零像素的数量可以不同。同样,对于带有自相交的轮廓,该功能肯定会给出错误的结果。
声明
1 |
|
- contour 二维点(轮廓顶点)的输入向量,存储在std :: vector或Mat中。
- oriented 定向区域标志。如果为true,则函数根据轮廓方向(顺时针或逆时针)返回带符号的区域值。使用此功能,您可以通过取一个区域的符号来确定轮廓的方向。默认情况下,该参数为false,表示返回绝对值。
arcLength函数
该函数计算曲线长度或闭合轮廓周长。
1 |
|
- curve 二维点的输入向量,存储在std :: vector或Mat中。
- closed 指示曲线是否闭合的标志。
测试代码:
1 |
|
效果
和上一篇相比就是多了一个纵横比约束。
OpenCV4入门教程097:用几何矩计算轮廓中心与横纵比过滤
https://blog.jackeylea.com/opencv/opencv-calc-center-moment/