Ich muss die Hautfarbe unabhängig von der Beleuchtung erfassen. Ich habe die folgenden Kriterien verwendet (mit hsv und rgb), aber es funktioniert nicht:
int h = get_hue(...);
int s = get_saturation(...);
int r = get_red_component(...);
int g = get_green_component(...);
int b = get_blue_component(...);
if ((h<38)&&(h>6)&&(s>0.23)&&(s<0.68)){
// skin color
}
else if ((r>95) && (g>40) && (b>20) &&
((maximum(r,g,b)-minimum(r,g,b))>15) &&
(abs(r-g)>15)&&(r>g)&&(r>b)){
// also skin color
}
Es funktioniert morgens, wenn meine Haut beleuchtet ist, aber abends funktioniert es nicht.
Jede Hilfe wird geschätzt. Danke im Voraus. (PS - meine Haut ist nicht weiß.)
image-processing
opencv
object-recognition
Roney Island
quelle
quelle
Antworten:
Nach meiner Erfahrung ist die beste Methode dafür, es in den Lab-Farbraum zu konvertieren. L repräsentiert das Licht und a und b sind lichtunabhängig. OpenCV unterstützt die Konvertierung von Lab-Farbskalen.
quelle
Für diesen speziellen Fall empfehle ich, das LAB Color-Modell nachzulesen.
Lesen Sie in Bezug auf das LAB-Farbmodell Delta E. Der Abstand zwischen zwei Farben. Weitere Details zum Farbraum finden Sie hier: http://www.codeproject.com/Articles/613798/Colorspaces-and-Conversions
Ich habe das LAB-Farbmodell noch nie über OpenCV versucht, da die Konvertierung von RGB nach LAB und zurück mühsam ist (erfordert einen sofortigen Schritt).
Aber ich habe Delta E auf MatLab mit großem Erfolg erkundet. Sie müssen zuerst den Skin auswählen, einen kleinen ROI auf das Video / Bild zeichnen und das Programm findet genau den gleichen Farbton wie der Skin, den Sie über den ROI ausgewählt haben.
Eine andere Möglichkeit ist auch die Textur zu untersuchen. Eine kurze Vorschau hier: http://books.google.com.sg/books?id=bRlk_WjfITIC&pg=PA598&lpg=PA598&dq=skin+thresholding+from+texture&source=bl&ots=28fE0livyh&sig=8EeQTLFCc-JhJs = 0CDUQ6AEwAQ # v = onepage & q = skin% 20thresholding% 20from% 20texture & f = false
Dies ist im Grunde ein Training einer Bilddatenbank. Kommentieren Sie hier, wenn Sie Hilfe beim Trainieren der Bilddatenbank oder beim Konvertieren von ColorSpace benötigen. Ein wenig beschäftigt, daher sind die Antworten nur Vorschläge, die Sie machen können. Prost.
quelle
Versuche dies:
quelle