Pregunta

Usando CVRECT, puedo detectar la coordenada de caras

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

¿Pero mi problema es cómo descubrir WhitePixelvalue cuando la persona sonríe?

¿Y qué sonrisa compensada es apropiada? 150 El valor es preciso?

Smile Haarcascade no funcionará en absoluto. Necesito hacer algo con lógica solo con píxeles blancos

¡¡¡Por favor ayuda!!!

ACTUALIZACIÓN: Creo que mi recompensa va a ser desperdicio ... no obtuvo una respuesta experta en este hilo. Estaba buscando algoritmo :(

¿Fue útil?

Solución

Por lo que entiendo, quieres detectar la sonrisa en función de la diferencia de color entre los dientes y la piel, ¿verdad? Probablemente eso tiene sentido ya que la intensidad de los píxeles de los labios difiere mucho de los píxeles de los dientes. Si es así sugeriría dos enfoques.

El primero es calcular la transformación de la laplacia de la región de la cara. Las coordenadas con valores máximos de Laplacian corresponderán a la mayor diferencia entre las intensidades de los píxeles vecinos. Creo que Smile contiene los píxeles de mayor contraste. Debe elegir nuevamente el umbral, sin embargo, en este caso es independiente en las condiciones de la luz de la imagen.

La segunda idea es similar a la primera, con la excepción de que necesita comparar píxeles con el valor medio de todos los píxeles faciales. Aquí los píxeles cuyos valores son relativamente demasiado altos con respecto a la media se consideran píxeles de dientes. Por cierto, algo como cvAdaptiveThreshold podría ayudar.

Otros consejos

Oye, ¿has revisado este proyecto? https://github.com/beetlebugorg/pictureme
Este es realmente un gran proyecto, eche un vistazo. Creo que encontrarás lo que necesitas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top