2016-08-04 29 views
0

(ich dies von OpenCV in Zusammenhang zu fragen, aber Antworten mit anderen Bibliotheken oder allgemeine Computer-Vision-Techniken sind willkommen)OpenCV - „Füllung in“ fehlenden Teilen von Objekten aus Untergrundsubtraktion Maske

Wenn solche Untergrundsubtraktion tun Wie bei der Verwendung von MOG2 gibt es oft Lücken in einem Objekt. Wenn Sie also die Maske anwenden würden, würden die Daten fehlen (siehe unten die hochgeladene Beispielmaske). Was ist ein guter Weg in OpenCV (vorzugsweise in Python), die Kanten zu "schließen" und dann eine Maske innerhalb der geschlossenen Kanten einzufügen (siehe hochgeladenes Beispielbild, das ich manuell erstellt habe)? Ein Schlüsselproblem ist, dass OpenCV, wenn ein Chunk aus der Kante herausfließt, wissen muss, wie die Kante fortgesetzt wird, um diesen Chunk zu schließen und zu füllen. Wenn Sie beispielsweise die Hintergrundsubtraktion verwenden, um gehende Personen zu erkennen, und dann die Maske auf das Bild anwenden und dieses "Füllen" ausführen, wäre das Endergebnis eine Person, die aus dem Hintergrund maskiert wird, ohne dass irgendwelche Teile ausgelassen werden. von ihrem Körper oder ihrer Kleidung anders als wenn die Maske nur ohne das zuerst angewendet wurde.

Ich verstehe, dass es Fälle geben kann, in denen zu viel Haut oder Kleidung mit dem Hintergrund zusammenpasst und der Ansatz nicht immer perfekt funktioniert, aber ich suche zumindest nach einem Ansatz, der ziemlich gut funktioniert. Das Ziel hinter all dem ist, in der Lage zu sein, sich bewegende Objekte zu extrahieren, so dass ein HAAR/LBP-Matching auf ihnen ausgeführt werden kann, um sie effizienter zu identifizieren (aufgrund des Auffindens der interessierenden Regionen) und genau (aufgrund des Entfernens von möglichen) Hintergrund Verwirrung).

ORIGINAL

enter image description here

IDEALER wäre in etwa so

WERDEN

enter image description here

Antwort

0

Das erste, was ich morphologische Operationen ist versuchen würde. Morphologische Öffnung, um laute Flecken in der Maske herauszufiltern, sowie morphologisches Schließen und morphologisches Füllen der Lücken, um Lücken zu füllen. Sie müssten experimentieren, um das beste strukturierende Element für Ihr spezifisches Problem zu finden.