我在這裏做錯了什麼?在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