2016-05-19 5 views
0

Ich habe ein Bild Original Image, und ich möchte die Kontur, die die Box im Bild umschließt finden. Der Grund dafür ist, dass ich das Bild dann auf die Begrenzungsbox zuschneiden und dann die Bildbearbeitung für dieses zugeschnittene Bild durchführen möchte.Finden Sie die Kontur mit größten umschließenden Bereich mit OpenCV (Python)

Ich habe versucht Canny Kanten zu erkennen, aber sie scheinen nicht zu verbinden, wie ich sie will. Anbei ist ein Bild davon, wie die schäbigen Kanten aussehen. Canny edges

gray = img[:,:,1] 
    blurred = cv2.GaussianBlur(gray, (5, 5), 0) 
    edged = cv2.Canny(blurred, 20, 60) 

Was ist der beste Weg, um den Begrenzungsrahmen aus dem Originalbild zu finden?

Vielen Dank.

Lassen Sie mich wissen, wie ich diese Frage, wenn möglich, auch klarer machen kann!

Antwort

0

Ich gehe davon aus das folgende: (falls dies nicht der Fall ist, dass Sie solche Dinge in Ihrer Frage geben sollte) Sie kennen die Größe der Box Die Größe ist immer die gleiche Die Perspektive ist immer das gleiche Die Box zum Kasten (in x und y) Schwellenwert überschritt, max Gradienten oder was auch immer Anzüge ist immer vollständig in dem Bereich der fiew die Box

über das Bild

verwenden, um ein paar Abtastzeilen nicht gedreht wird, um den Übergang von schwarzem Hintergrund zu finden du bist am besten.

Verwerfen Sie Ausreißer, verwenden Sie Minimal- und Maximalkoordinaten, um den ROI fester Größe über Ihrer Box zu positionieren.

Es gibt viele andere Möglichkeiten, um das Zentrum positon dieser festen ROI wie

Schwelle zu finden, Distanztransformation, maximal

oder

Schwelle, Klecks-Suche, Schwerpunkt/Kontur

Sie könnten auch einen Konturenvergleich durchführen.

Ich empfehle Ihnen, Ihr Setup so zu verbessern, dass die Hintergrundbeleuchtung nicht den Rahmen überschreitet (links/rechts ist besser als oben/unten). Dann wird alles einfach.

Ihr Randbild sieht schrecklich aus. Überprüfen Sie andere Methoden oder verbessern Sie Ihre Canny-Parameter.

Verwandte Themen