2015-04-29 82 views
0

你好,我正在尝试检测嘴巴或嘴唇的区域。为此,我尝试使用这些文件中描述的方法:Paper1,Paper2。 (只能张贴两篇论文)基于YCbCr色彩空间的嘴/嘴唇检测openCv

他们使用的方法是利用颜色空间YCbCr,因为嘴唇有强烈的红色成分,而弱的蓝色则是脸部的其余部分。因此可以使用这样的该色彩空间:

LipMap =(CR Cr)的((CR Cr)的-n(CR/CB))((CR Cr)的-n *(CR/CB))

N = 0.95 *((总和(CR *铬)/ M)/(总和(CR/CB)/ M))

问题是所有这些来源不真正解释如何ca流通。我知道如何获得Cr和Cb的值,但我不能100%确定他们应该在[0,1]或[0,255]的范围内,资源状态都是。此后,我不知道如何从n计算以及LipMap中获得正确的值。计算结果出来之前或之后,这些数字是否应该归一化?另外,你如何从Cr/Cb和标准化值中获得正确的值,我似乎无法得到正确的值。

我一直试图让这个工作几个小时,但我做错了什么。最后的一些价值总是很大。它们也不在它们应该是[0,1]或[0,255]的范围内。

如果任何人有任何关于这个如何解决它或一些技巧的输入,将不胜感激。

回答

0

如果你只是想找出嘴唇在脸上出现的位置,那么使用haar级联找到它们可能是值得的(我不知道你是否尝试过这种方式,或者如果是这样适合你的项目)

如果你真的需要找到良好的YUV阈值设置,你仍然可以使用haar级联来找到嘴巴,然后在haar中挑选出你感兴趣的区域内的像素知道通常会在嘴唇上包含一个像素。

这个像素会为你提供一个YUV值作为嘴唇上的一个随机区域,然后你可以对图像进行阈值包括所有像素的相似像素的YUV值(你可以找出这个有多严格在测试期间的阈值),然后你应该留下嘴巴的所有像素(足够接近)

希望我已经解释了,足以让你理解。

祝你好运

+0

Mabye我应该在我的问题更清楚。现在我正在使用haar cascade来获取脸部和嘴部区域。在口腔区域,我想要检测口腔的圆锥体以及底部和底部。我想要实现的是获得清晰的嘴唇轮廓,这样我就可以获得顶部,底部和两个角落上的点。 – Holmis

+0

好的,所以我建议在你的嘴巴区域内找到一个区域,就像每个图像中的“平均”部分,所以也许是中间的,或者可能就在上面/下面(所以不要得到线条在中间),取这个像素的YUV数据,然后用+/- 50的每个数值(50就是一个例子,你可以测试这个)对图像进行阈值处理,然后应该给你一个嘴唇的面具。 – Aphire