1

我有一个 ArrayList 点,它们是矩形的角。我想在 Java/Android 中使用下一个函数。问题是 OpenCV for Android Library 中没有像 Mat(corners) 这样的构造函数。我如何将角转换为 MatOfPoint2f 这个函数?

approxPolyDP(cv::Mat(corners), approx, cv::arcLength(cv::Mat(corners), true) * 0.02, true);
4

1 回答 1

0

这是 Point2d 的等效代码,如果您有其他类型的点,请将 Point2d 和 Vec2d 更改为适当的类型(例如,Point2f 和 Vec2f 用于浮点)。

vector<cv::Point2d> pts(10,Point2d(0,1)); // Your points
Mat m(pts.size(),1,CV_64FC2); // Your matrix
for(int i=0;i<pts.size();++i) // Assign points to matrix
{
    m.at<Vec2d>(i)[0]=pts[i].x;
    m.at<Vec2d>(i)[1]=pts[i].y;
}
于 2013-08-29T19:09:29.527 回答