每个人都过得愉快。
我仍在使用the same old program,到目前为止,我设法根据轮廓力矩的计算找到最大轮廓的面积和坐标。
double m_00 = cvGetSpatialMoment( &moments, 0, 0 ); //The area
double m_10 = cvGetSpatialMoment( &moments, 1, 0 );
double m_01 = cvGetSpatialMoment( &moments, 0, 1 );
float gravityX = (m_10 / m_00); //center of x-axis
float gravityY = (m_01 / m_00); //center of y-axis
......我得到的是:
......这很好用。但现在我想获得轮廓/对象的x轴和y轴的长度,如下所示:
问题是是否有任何函数可以计算轮廓的x轴和y轴长度?如果是这样,有人可以给我一些线索怎么做?
提前致谢。欢呼声。
P / S:The program我上面链接的是旧的,所以它有一些错误。
答案 0 :(得分:0)
在我花了将近一天的时间去搜索答案后,我终于找到了另一种方法来获取对象的宽度和高度,这是通过使用 cvBoundingRect功能。基本上它会在轮廓周围形成一个直立的边界矩形,所以我只需要检索框的宽度和高度以获得我想要的东西。
代码:
Rect rect= cvBoundingRect(contour,0);
double pt1, pt2;
pt1 =rect.width; //width
pt2 =rect.height; //heigth
是的,谢谢你的帮助。干杯。