我试图找到一个轮廓的质心,但在C(OpenCV 2.3.1)中实现示例代码时遇到麻烦.谁能帮我吗?
解决方法
要找到轮廓的重心,可以使用时刻的方法.并且功能实现OpenCV.
查看这些时刻功能(central and spatial moments).
以下代码取自OpenCV 2.3 docs教程. @L_301_1@
/// Find contours findContours( canny_output,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,Point(0,0) ); /// Get the moments vector<Moments> mu(contours.size() ); for( int i = 0; i < contours.size(); i++ ) { mu[i] = moments( contours[i],false ); } /// Get the mass centers: vector<Point2f> mc( contours.size() ); for( int i = 0; i < contours.size(); i++ ) { mc[i] = Point2f( mu[i].m10/mu[i].m00,mu[i].m01/mu[i].m00 ); }
也是check out this SOF,虽然它是在Python,它将是有用的.它找到轮廓的所有参数.