检测肖像图像中的头发颜色

时间:2013-08-16 14:57:35

标签: image opencv image-processing image-manipulation

好的,假设我正确地使用了检测和封装肖像照片头发的alghoritm。

我如何(具有高%正确性)区分颜色?

我知道这看起来很简单,但主要问题在于取决于拍摄照片的环境光线条件或后期效果处理的情况(较少的情况),一系列“金发”,“黑色”,“棕色“和”红色“变化很大,假阳性,有时没有检测到正确的。 (将金发女郎当作黑色前例)。

使用opencv(或任何其他工具,因为我已经拥有头发),我应该应用哪种预处理算法来“规范化”这类问题并尽量减少错误?

非常感谢。

2 个答案:

答案 0 :(得分:1)

我认为您可以使用机器学习方法进行颜色分类。 只需训练分类器(例如SVM或神经网络)听到颜色样本(您可以将颜色直方图作为输入向量)和一些类(颜色名称)。我认为这将是处理光线变化,噪点,阴影等的好方法。我认为最好使用一些先进的色彩空间L * a * b *或HSV。

可能您需要在输入向量中包含一些参考historgam(用于获取有关光照条件的数据)。例如,您可以从面部获取它(不是最佳解决方案)。

答案 1 :(得分:1)

我不相信你只能使用头发区域进行任何预处理。我只是凭直觉说这个。

这是一个想法。直方图均衡是一种着名的预处理方法,可以克服一定量的照明效果。因此,您可以做的是,将图像分离为颜色通道,对每个通道应用直方图均衡,然后组合通道以获得直方图均衡图像。我认为它会很有用。

我在Matlab上实现了它,在Lena上尝试过。您可以从here下载。