Как узнать whitePixelValue, когда человек улыбается? - PullRequest
6 голосов
/ 05 мая 2011

используя CvRect, я могу определить координату лица

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

Но моя проблема в том, как узнать whitePixelValue, когда человек улыбается?

И какое смещение улыбки подходит?150 значение точно?

Улыбка haarcascade вообще не будет работать.Нужно что-то делать с логикой только с белыми пикселями

Пожалуйста, помогите !!!

Обновление: я думаю, что моя награда будет напрасной .. не получил экспертаответ на эту тему.Я искал алгоритм: (

Ответы [ 2 ]

7 голосов
/ 05 мая 2011

Насколько я понимаю, вы хотите обнаружить улыбку на основе разницы в цвете между зубами и кожей, верно? Возможно, это имеет смысл, поскольку интенсивность пикселей на губах сильно отличается от пикселей на зубах. Если так, то я бы предложил два подхода.

Первый - это вычисление преобразования Лапласа в области лица. Координаты с максимальными значениями лапласиана будут соответствовать наибольшей разнице между интенсивностями соседних пикселей. Я думаю, что улыбка содержит самые контрастные пиксели. Вы должны снова выбрать порог, однако в этом случае он не зависит от освещенности изображения.

Вторая идея аналогична первой, за исключением того, что вам нужно сравнивать пиксели со средним значением всех пикселей лица. Здесь пиксели, значения которых являются относительно высокими относительно среднего значения, рассматриваются как пиксели зубов. Кстати, что-то вроде cvAdaptiveThreshold может помочь.

0 голосов
/ 13 мая 2011

Эй, вы проверили этот проект https://github.com/beetlebugorg/PictureMe
Это действительно отличный проект, посмотрите на него. Я думаю, вы найдете то, что вам нужно.

...