Ich habe einen Code in Python und ich portiere es nach C++. Ich bekomme ein seltsames Problem mit drawContours
Funktion in OpenCV C++.Problem mit DrawContours OpenCV C++
self.contours[i] = cv2.convexHull(self.contours[i])
cv2.drawContours(self.segments[object], [self.contours[i]], 0, 255, -1)
dies ist der Funktionsaufruf in Python und der Wert -1 für die Dickenparameter zum Füllen der Kontur verwendet werden, und das Ergebnis sieht aus wie
ich genau das gleiche täte in C++,
cv::convexHull(cv::Mat(contour), hull);
cv::drawContours(this->objectSegments[currentObject], cv::Mat(hull), -1, 255, -1);
aber dies ist das resultierende Bild:
(bitte achten Sie darauf, die convexhull
Punkte zu sehen, das ist nicht leicht sichtbar). Ich bekomme nur die Punkte und nicht das gefüllte Polygon. Ich habe auch versucht wie
cv::fillPoly(this->objectSegments[currentObject],cv::Mat(hull),255);
verwenden, aber nicht helfen. Bitte helfen Sie mir bei der Behebung des Problems. Ich bin mir sicher, dass mir etwas sehr Triviales fehlt, aber ich konnte es nicht erkennen.
Bitte zeigen Sie den vollständigen Code. Was ist die Art der Variablen "Rumpf". Das Problem wird mit der Art sein, wie der Parameter strukturiert ist - es sollte ein Vektor von Konturen sein. Es scheint, dass in diesem Fall jeder Punkt als individuelle Kontur interpretiert wird. –
@ DanMašek Perfekt !, hat Ihr Vorschlag funktioniert. Ich verwende Vektor von Vektorpunkten direkt. – Arul