c++ - 在 OpenCV 中绘制多边形?

标签 c++ arrays opencv image-processing vector

我在这里做错了什么?

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 循环末尾缺少的括号,因为这只是我代码的一部分)

最佳答案

仅作记录(并且因为 opencv 文档在这里非常稀疏)使用 c++ API 的更简化的代码段:

  std::vector<cv::Point> fillContSingle;
  [...]
  //add all points of the contour to the vector
  fillContSingle.push_back(cv::Point(x_coord,y_coord));
  [...]

  std::vector<std::vector<cv::Point> > fillContAll;
  //fill the single contour 
  //(one could add multiple other similar contours to the vector)
  fillContAll.push_back(fillContSingle);
  cv::fillPoly( image, fillContAll, cv::Scalar(128));

关于c++ - 在 OpenCV 中绘制多边形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8281239/

相关文章:

c++ - 在 C/C++ 中,int (*f) (float *) 会创建什么?

python - 将形状复制到空白 Canvas (OpenCV,Python)

OpenCV videocapture读取摄像头rtsp错误

c++ - 从内部类中的方法调用包含类的方法

c++ - 公开类的 boost::tuple 部分以 boost python

c++ - 使用 C++ 登录到 Windows 上的事件查看器

java - 从数组中查找缺失的数字

python - 有没有任何pythonic方法可以找到数组中特定元组元素的平均值?

javascript - 如何从输入字段中的json中搜索数据

matlab - |Ubuntu 18.04, opencv-3.4.0, MATLAB/R2018a| make 因对 cv::dnn::eperimental 的 undefined reference 而失败