Ich habe ein Bild von einem Gesicht und ich habe Haarkaskaden benutzt, um die Lage (x, y, Breite, Höhe) des Mundes, der Nase und jedes Auges zu erkennen. Ich möchte alle Pixel außerhalb dieser Regionen auf Null setzen. Was wäre der schnellste (rechnerische) Weg, dies zu tun? Ich werde es irgendwann in Echtzeit mit Videobildern machen.
Ich weiß nicht, ob es der schnellste Weg ist, aber es ist ein Weg, es zu tun.
Erstellen Sie ein Maskenbild mit dem Bereich der Fläche als weiß und wenden Sie bitwise_and function mit dem Originalbild und dem Maskenbild an.
%Vor% Es dauert 0.16 ms
in meinem System (Core i5,4GB RAM) für ein Bild der Größe 400x300
BEARBEITEN - BESSERE METHODE : Sie müssen nicht wie oben beschrieben vorgehen. Erstellen Sie einfach ein Nullbild und kopieren Sie dann die ROI vom Originalbild in das Nullbild. das ist alles.
%Vor% Es dauert nur 0.032 ms
in meinem System für obige Parameter, 5 times faster
als oben.
Ergebnisse:
Eingabebild:
Ausgabe: