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