图像矩乍看比较难理解,看了很多资料,大概明白了一些,但还是无法在脑海里形成一个模型概念,于是从源码中寻找它的应用.
今天就通过公式和程序抓取数据,来进一步理解图像矩
先看一个图片
这是程序运行结果, 途中的气球轮廓 被标了出来,
接下来说一下程序运行步骤 几个概念,这个三个值是 moments 方法里边求出的 必有的三个项
先通过获取轮廓,把轮廓值存入数组,然后对数组里边的每个值求 几何矩 ,中心距,中心归一化矩 ,所谓矩在很早以前 有移动的move at 含义,不要被汉字解释混淆, 再要理解,矩是通过上边的公式求出来的.可以多参考别的,
这个在封装的方法里边很容易就计算出, . 每个轮廓上 的某个值,包括了 这三项,而这三项,也是有不同部分组成,下边图是通过数据抓图得到的.通过图可以在脑海里对moment 求值有个进一步的认识
看到了吗, moo m01 ...的值都求出来了
那么图像中心点 center(x0,y0)就求出来了
看到了吗x0 y0 就是图像中心
最终结果的中心点就是通过这个公式算出来的,在程序里边是这样的
ccs[i] = Point(static_cast<float>(contours_moments[i].m10 / contours_moments[i].m00), static_cast<float>(contours_moments[i].m01 / contours_moments[i].m00));
未完待续