Effiziente Hintergrundsubtraktion mit OpenCV

7

Ich möchte die Hintergrundsubtraktion in einer Videodatei mit der OpenCV-Methode durchführen. Momentan kann ich eine Hintergrundsubtraktion durchführen, aber das Problem ist, dass ich die Ausgabe im Farbmodus nicht bekommen konnte. Alle Ausgaben nach dem Subtrahieren des Hintergrunds kommen im Graustufen-Farbmodus : (. Ich möchte die Farbinformationen in den Vordergrund bringen, was die resultierende Ausgabe ist, nachdem der Hintergrund subtrahiert wurde.

Kann ich das mit Maskierung tun? wie die folgende Prozedur, an die ich denke.

  1. Aufnahme erfassen - InputFrame (RGB)
  2. Prozess InputFrame
  3. Subtrahieren Sie den Hintergrund, speichern Sie den Vordergrund in TempFrame (das in Graustufen angezeigt wird : ()
  4. Erstellen Sie eine Maske mit TempFrame
  5. Übernehmen Sie die erstellte Maske in InputFrame
  6. Erhalten Sie farbigen Vordergrund als OutFrame

Ich bin begeistert von der Maskierung mit OpenCV. Ich bin nur ein Anfänger in OpenCV. Bitte helfen Sie mir, dies zu überwinden.

Vielen Dank im Voraus.

    
Jabez 08.01.2010, 09:59
quelle

2 Antworten

10

Okay, ich verstehe nicht, wie TempFrame (Ihr Vordergrund) Graustufen sein könnte, wenn Sie die Hintergrundsubtraktion verwenden. Sie müssen einen sehr speziellen Algorithmus verwenden. Aber vorausgesetzt, TempFrame ist Graustufen, dann würden Sie dies tun:

%Vor%

Das ist OpenCV 2.0-Code oben. Die Zahl 0,5 ist ein Schwellenwert, Sie müssen es auf etwas angemessenes einstellen. Wenn Sie keine Gleitkommabilder verwenden, würden Sie sie wahrscheinlich auf 128 oder so einstellen. Das ist das Gleiche in OpenCV 1.1-Code:

%Vor%     
Ray Hidayat 17.01.2010, 11:02
quelle
21

Ссылка

Code ist hier

Ссылка

um einen farbigen Vordergrund zu erreichen Kopieren Sie einfach das Bild mit der Vordergrundmaske

// image.copyTo (Vordergrund, Vordergrund);

    
Birol Kuyumcu 14.08.2011 22:45
quelle