Je dois capturer la couleur de la peau indépendamment de l'éclairage. J'ai utilisé les critères suivants (en utilisant hsv et rgb) mais cela ne fonctionne pas:
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
}
Cela fonctionne le matin quand ma peau est illuminée mais le soir ça ne marche pas.
Toute aide serait appréciée. Merci d'avance. (PS - ma peau n'est pas blanche.)
image-processing
opencv
object-recognition
Roney Island
la source
la source
Réponses:
D'après mon expérience, la meilleure méthode consiste à le convertir en espace colorimétrique Lab. L représente la lumière, et a et b sont indépendants de la lumière. OpenCV prend en charge la conversion d'échelle de couleurs Lab.
la source
Pour ce cas particulier, je recommande de lire le modèle LAB Color.
Et en ce qui concerne le modèle LAB Color, lisez Delta E. La distance entre 2 couleurs. Plus de détails sur l'espace colorimétrique peuvent être trouvés ici: http://www.codeproject.com/Articles/613798/Colorspaces-and-Conversions
Je n'ai jamais essayé le modèle de couleur LAB via OpenCV car il est difficile de convertir de RVB en LAB et vice-versa (nécessite une étape immédiate).
Mais j'ai exploré Delta E sur MatLab avec beaucoup de succès. Vous devez d'abord sélectionner le skin, dessiner un petit ROI sur la vidéo / image et le programme trouvera exactement la même tonalité de couleur que le skin que vous avez sélectionné via le ROI.
Une autre option consiste également à examiner la texture. Un bref aperçu ici: http://books.google.com.sg/books?id=bRlk_WjfITIC&pg=PA598&lpg=PA598&dq=skin+thresholding+from+texture&source=bl&ots=28fE0livyh&sig=8EeQTLFCc-JB979_-ccAhFJHUF = 0CDUQ6AEwAQ # v = onepage & q = skin% 20thresholding% 20from% 20texture & f = false
Il s'agit essentiellement de former une base de données d'images. Commentez ici si vous avez besoin d'aide pour former la base de données d'images ou pour convertir ColorSpace. Un peu occupé, donc la réponse est juste des suggestions que vous pouvez faire. À votre santé.
la source
essaye ça:
la source