j'espère que c'est le bon endroit pour demander. Sinon, désolé pour mon erreur et pleace me conseille un meilleur site.
J'essaye d'implémenter un détecteur de peau super simple en utilisant une certaine gamme d'images HSB. j'utilise l'approche décrite ici et ici .
j'essaye d'utiliser une source vidéo de ma webcam. si j'utilise un éclairage solaire, cela fonctionne assez bien (pas si bon mais assez bon), mais avec des néons .. c'est un gâchis. beaucoup de régions blanches sont détectées et beaucoup de bruit partout.
Pourquoi?
j'utilise l'algorithme décrit dans la deuxième source :
- convertir l'image ho l'espace colorimétrique HSV
- mettre du blanc sur la plage 0 <H <38
- filtre dilaté
- éroder le filtre
- filtre flou
Prendre en compte les différentes valeurs obtenues en couleur HSV lors de l'application de néons: un exemple de son écart est ici . Essayez d'adapter votre algorithme pour l'adapter à ces valeurs.
Ici, il existe un autre algorithme pour détecter la peau, et pour détecter les conditions d'éclairage, vous pouvez utiliser celui-ci .
Un autre algorithme, lié à la détection de la peau, mais pas trop lié aux effets de lumière néon, est celui-ci .
la source
Les réponses que vous avez obtenues jusqu'à présent indiquent de bonnes méthodes alternatives, mais si vous êtes intéressé à utiliser quelque chose comme votre algorithme initial, ce n'est probablement pas difficile à corriger. Il vous suffit de régler les particularités HSV d'OpenCV. Compte tenu des résultats farfelus, je suppose que vous avez probablement utilisé l'une des représentations numériques les plus courantes du HSV pour choisir vos seuils et / ou pour convertir des pixels?
OpenCV représente HSV différemment de la plupart des autres sources que vous pourriez avoir trouvées:
Probablement trop tard pour vous aider, mais c'était une question intéressante, et quelqu'un d'autre pourrait rencontrer le même problème.
la source
la source