1
我有一個Python代碼,我將它移植到C++。 OpenCV C++中的drawContours
函數出現了一個奇怪的問題。問題使用drawContours OpenCV C++
self.contours[i] = cv2.convexHull(self.contours[i])
cv2.drawContours(self.segments[object], [self.contours[i]], 0, 255, -1)
這是在Python函數調用和值-1的厚度參數用於填充輪廓,結果看起來像
我做的完全一樣C++,
cv::convexHull(cv::Mat(contour), hull);
cv::drawContours(this->objectSegments[currentObject], cv::Mat(hull), -1, 255, -1);
但是這是所得到的圖像:
(請注意看convexhull
點,這是不容易看到的)。我只獲取點而不是填充的多邊形。我也試過用 like,
cv::fillPoly(this->objectSegments[currentObject],cv::Mat(hull),255);
但是沒有幫助。 請幫我解決這個問題。我相信我錯過了一些非常微不足道的東西,但無法發現它。
請顯示完整的代碼。變量'hull'的類型是什麼。問題將以參數結構的方式出現 - 它應該是等值線的向量。在你的情況下,似乎每個點都被解釋爲一個單獨的輪廓。 –
@DanMašek完美!,你的建議工作。我正在使用矢量點的矢量。 – Arul