当人微笑时如何找出白色像素值?

6

我可以使用CvRect来检测脸部坐标。

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

我的问题是如何在人微笑时找到白色像素值?另外,什么微笑偏移量是合适的?150的值准确吗?
微笑haar级联根本不起作用。需要通过逻辑处理白色像素。
请帮忙!更新:我想我的奖励将被浪费...在这个帖子上没有得到专家回复。我正在寻找算法:(
2个回答

7
据我所知,您想通过牙齿和皮肤之间的颜色差异来检测微笑,对吧?可能这是有道理的,因为嘴唇像素强度与牙齿像素不同。如果是这样,我建议两种方法。
第一种方法是计算面部区域的拉普拉斯变换。具有最大拉普拉斯值的坐标将对应于相邻像素强度之间的最大差异。我认为微笑包含了最多的对比像素。您应该再次选择阈值,但在这种情况下,它独立于图像的光照条件。
第二个想法与第一个类似,不同之处在于您需要将像素与所有面部像素的平均值进行比较。这里,相对于平均值过高的像素被视为牙齿像素。顺便说一下,类似于cvAdaptiveThreshold的东西可能会有所帮助。

我仍然不清楚如何在Objective-C中实现这个逻辑 :( - Tariq

0

是的,我已经检查过这个项目了... 但我的问题不同... 我需要计算脸部的白色像素... 因此正在寻找微笑haarcascade算法。 - Tariq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接