我在 python 中有一个代码,我正在将它移植到 c++ 中。我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
看点,这是不容易看到的)。我只得到点而不是填充的多边形。我也试过用fillPoly
like,
cv::fillPoly(this->objectSegments[currentObject],cv::Mat(hull),255);
但没有帮助。请帮助我解决问题。我确信我错过了一些非常微不足道但无法发现的东西。