OpenCV findContours-Problem

9

Ich habe den folgenden Code, der Hintergrundsubtraktion durchführt und dann findContours verwendet, um eine Grenze um das Vordergrundobjekt zu zeichnen.

%Vor%

Das Bild ist nur ein weißer Hintergrund, aber findContours () gibt eine Kontur mit den 4 Kanten des Bildes zurück. Dies endet damit, dass es die größte gefundene Kontur ist, die meine Logik im Code negiert. Gibt es trotzdem eine Lösung? Ich möchte, dass es einen Nullvektor zurückgibt, wenn der Bildschirm leer ist.

Kann dieser Code auch verbessert werden, um die Effizienz zu verbessern?

    
Madman 02.12.2011, 09:10
quelle

1 Antwort

5

Ihr Hintergrund sollte schwarz (0) sein und jedes Objekt, das Sie konturieren möchten, sollte weiß sein (oder & gt; = 1). Sie haben es umgekehrt und deshalb erkennt FindContours den Hintergrund als Kontur und nicht als Objekt.

    
Adrian 05.12.2011, 06:44
quelle