4

好的,假设我正确使用了检测和封装肖像图片头发的算法。

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

我知道这看起来很简单,但主要问题是,根据拍摄照片的环境光线条件或(较少的情况)后期效果处理,“金发”、“黑色”、“棕色”和“红色”变化很大,给出了误报,有时没有检测到正确的。(通过一个金发女郎作为黑色前例)。

使用opencv(或任何其他工具,因为我已经有了头发),我应该应用哪些预处理算法或方法来“规范化”这类问题并最大限度地减少错误?

非常感谢。

4

2 回答 2

2

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

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

于 2013-08-16T15:23:56.053 回答
1

我不相信您可以仅使用头发区域进行任何预处理。我说这只是凭直觉。

这是一个想法。直方图均衡化是一种著名的预处理方法,它在一定程度上克服了光照效应。所以你可以做的是,将你的图像分成颜色通道,对每个通道应用直方图均衡,然后组合通道以获得直方图均衡图像。我认为这会很有用。

我已经在 Matlab 上实现了它,在 Lena 上试过。你可以从这里下载它(死链接)。

于 2013-08-16T15:37:27.687 回答