Question

en utilisant CvRect, je suis capable de détecter les coordonnées des faces

detectFace(IplImage * pImg, CvHaarClassifierCascade * pCascade, CvMemStorage * pStorage)

Mais mon problème est: Comment découvrir whitePixelValue quand une personne sourit?

Et quel Smile offset est approprié?La valeur 150 est-elle exacte?

La haarcascade Smile ne fonctionnera pas du tout.Besoin de faire quelque chose avec de la logique uniquement avec des pixels blancs

Veuillez aider !!!

Mise à jour: je pense que ma prime sera du gaspillage ... je n'ai pas reçu de réponse d'experts sur ce fil.je cherchais algorithme :(

Était-ce utile?

La solution

Autant que je sache, vous voulez détecter le sourire en fonction de la différence de couleur entre les dents et la peau, non?Cela a probablement un sens puisque les lèvres pixels intensité diffère grandement des pixels de dents.Si oui, je suggérerais deux approches.

Le premier est de calculer la transformation laplacienne de la région du visage.Les coordonnées avec des valeurs maximales de LAPLACIAN correspondent à la plus grande différence entre les intensités de pixels voisines.Je pense que sourire contient les pixels les plus contrastés.Vous devez à nouveau choisir le seuil, cependant, dans ce cas, il est indépendant sur les conditions d'image de la lumière.

La deuxième idée est similaire à celle du premier à l'exception que vous devez comparer les pixels avec une valeur moyenne de tous les pixels de visage.Ici, les pixels dont les valeurs sont relativement trop élevées en ce qui concerne la moyenne sont considérées comme des pixels de dents.Au fait, quelque chose comme cvAdaptiveThreshold pourrait aider.

Autres conseils

Hé, avez-vous vérifié ce projet https://github.com/beetlebugorg/PictureMe
C'est vraiment un super projet, jetez-y un œil.Je pense que vous trouverez ce dont vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top