Bildverarbeitung - Schnittsegmentierung mit opencv

11

Ich arbeite an der Identifizierung von Kleidungsstücken mit opencv. Als ersten Schritt muss ich ein T-Shirt segmentieren, indem ich Gesicht und Hände vom Bild entferne. Jeder Vorschlag wird geschätzt.

    
Amarnath R 24.04.2016, 10:52
quelle

1 Antwort

19

Ich schlage folgenden Ansatz vor:

  1. Verwenden Sie Adrian Rosebrocks Hautdetektionsalgorithmus zum Erkennen der Haut (danke für Rosa Gronchi für seinen Kommentar).
  2. Verwenden Sie den region growing-Algorithmus auf der Varianzkarte. Der anfängliche Startwert kann mithilfe der Stufe 1 berechnet werden (weitere Informationen finden Sie im Anhang).

code:

%Vor%

Ergebnis nach Stufe 1 (Hauterkennung):

Endergebnis:

Kommentare:

  1. Stufe 1 wird mit Hilfe des folgenden Algorithmus berechnet: .
  2. Die Funktion kann hier heruntergeladen werden .
  3. Die Lösung ist nicht perfekt. Zum Beispiel kann es fehlschlagen, wenn die Textur des Shirts der Textur des Hintergrunds ähnelt. Aber ich denke, dass es ein guter Anfang sein kann.
  4. Eine weitere Verbesserung, die gemacht werden kann, besteht darin, einen besseren Bereichswachstumsalgorithmus zu verwenden, der nicht in den skinMask-Ort hineinwächst. Anstatt den Region-Growing-Algorithmus zweimal unabhängig zu verwenden, kann das Ergebnis des zweiten Aufrufs des Region-Growing auch auf dem Ergebnis des ersten basieren.
drorco 24.04.2016 12:35
quelle