ich habe einen Code, der Konturen nach dem Anwenden von Filtern auf Videobildern identifiziert. Jetzt in meinem Fall bekomme ich 3 Konturen und ich zeige sie, indem ich Rechtecke um sie zeichne, was ich tun möchte, ist ein Rechteck um all diese 3 Kontur Rechtecke zu zeichnen. es wird ein größeres Rechteck sein, das 3 erkannte Rechtecke enthält. Hier ist mein einfacher Code zum Erkennen und Zeichnen von Rechtecken um Konturen herum.Zeichnung ein Rechteck um alle Konturen in OpenCV Python
im2, contours, hierarchy = cv2.findContours(canny_img,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
try: hierarchy = hierarchy[0]
except: hierarchy = []
# computes the bounding box for the contour, and draws it on the frame,
for contour, hier in zip(contours, hierarchy):
(x,y,w,h) = cv2.boundingRect(contour)
if w > 80 and h > 80:
cv2.rectangle(frame, (x,y), (x+w,y+h), (255, 0, 0), 2)
cv2.imshow('Motion Detector',frame)
Was haben Sie versucht? Nimm ein Stück Papier und zeichne es selbst und denke dann über den Algorithmus nach, den du benutzt hast. –
Haben Sie versucht, einen Punktsatz aus allen Konturen zu erstellen und berechnen Sie den "BoundingRect" auf diesem Satz? Vielleicht funktioniert das. – PSchn