我在这里做错了什么?在OpenCV中绘制多边形?
vector <vector<Point> > contourElement;
for (int counter = 0; counter < contours -> size(); counter ++)
{
contourElement.push_back (contours -> at (counter));
const Point *elementPoints [1] = {contourElement.at (0)};
int numberOfPoints [] = {contourElement.at (0).size()};
fillPoly (contourMask, elementPoints, numberOfPoints, 1, Scalar (0, 0, 0), 8);
我不断收到const Point部分的错误。编译器说
error: cannot convert 'std::vector<cv::Point_<int>, std::allocator<cv::Point_<int> > >' to 'const cv::Point*' in initialization
我在做什么错? (PS:显然忽略在for循环结束时的丢失托架由于此仅为我的代码部分)
谢谢。但是,在表示“const Point * elementPoints [1] = {tmp [0]}”的行;“我得到错误说:“错误:不能在初始化中将'cv :: Point_'转换为'const cv :: Point *'。任何想法为什么? –
fdh
是的,我忘了添加一个'&'。更新了答案,请现在测试。 – karlphillip
谢谢。它编译正确,但我有一个问题。你不只是指出一个奇点吗?你不需要通过所有的点来绘制整个多边形吗? – fdh