概述
图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。
从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与重构等领域。
OpenCV中的矩主要包括以下几种:空间矩,中心矩和中心归一化矩。
相关API
cv::moments ( InputArray array,
bool binaryImage = false
)
contourArea()
该函数使用Green formula计算轮廓面积,返回面积和非零像素数量如果使用drawContours或fillPoly绘制轮廓,可能导致不同。
double cv::contourArea ( InputArray contour,
bool oriented = false
)
arcLength()
用于计算封闭轮廓的周长或曲线的长度
double cv::arcLength ( InputArray curve,
bool closed
)
代码演示
新建一个项目opencv-0026,配置属性(VS2017配置OpenCV通用属性),然后在源文件写入#include和main方法
核心代码
实现步骤:
运行效果
其中命令行里面显示每个轮廓的面积和周长,右边的画的轮廓里面还有每个轮廓的质心
-END-