Domanda

Usando CVRECT Sono in grado di rilevare la coordinata Faces

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

Ma il mio problema è come scoprire WhitePixelValue quando la persona sorride?

E quale sorriso è appropriato? 150 valore è accurato?

Sorridi Haarcascade non funzionerà affatto. Hai bisogno di fare qualcosa con la logica solo con pixel bianchi

Per favore aiuto!!!

AGGIORNAMENTO: Penso che la mia generosità sarà sprecata .. non ho avuto una risposta di esperti su questo thread. Stavo cercando l'algoritmo :(

È stato utile?

Soluzione

Per quanto ho capito, vuoi rilevare il sorriso in base alla differenza di colore tra denti e pelle, giusto? Probabilmente questo ha senso poiché l'intensità dei pixel labbra differisce notevolmente dai pixel dei denti. Se è così, suggerirei due approcci.

Il primo è calcolare la trasformata laplaciana della regione del viso. Le coordinate con i valori massimi di Laplacian corrisponderanno alla maggiore differenza tra le intensità dei pixel vicini. Penso che Smile contenga i pixel più contrastanti. Dovresti scegliere nuovamente la soglia, tuttavia in questo caso è indipendente dalle condizioni di luce dell'immagine.

La seconda idea è simile alla prima con l'eccezione che è necessario confrontare i pixel con il valore medio di tutti i pixel facciali. Qui i pixel i cui valori sono relativamente troppo alti per quanto riguarda la media sono considerati pixel di denti. A proposito, qualcosa di simile cvAdaptiveThreshold potrebbe aiutare.

Altri suggerimenti

Hey hai controllato questo progetto https://github.com/beetlebugorg/pictureme
Questo è davvero un grande progetto, dai un'occhiata. Penso che troverai ciò di cui hai bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top