Nar*_*mar 9 iphone opencv computer-vision face-detection
我正在尝试开发一种应用程序,一旦提供图像就会检测到脸部的颜色.我能够从OpenCV中找出人脸检测算法并对其进行整合.但是我找不到任何可以检测到脸部颜色的示例或界面.
我有我提出的逻辑.如果有任何可用的内容,请告诉我,还是需要为此编写单独的功能?
逻辑:在给定的图像区域中,找到主要在给定图像中重复的颜色细节.我已经完成了直方图,但不确定它是如何起作用的.
任何帮助将不胜感激.
为了检测面部(或任何图像!)的肤色,我强烈建议您使用HSV颜色空间(或更复杂的颜色空间,如LAB)而不是默认的RGB颜色空间,因为RGB值会有很大差异,具体取决于强烈或昏暗的灯光和阴影等.而HSV在处理光线差异方面要好得多,它为您提供了易于使用的色彩值.
HSV表示Hue-Saturation-Value,其中Hue是颜色.例如:0的Hue是红色,50的Hue可能是绿色.饱和度是灰度,因此饱和度值接近0意味着它看起来是暗淡或灰色,而饱和度值200可能是非常强烈的颜色(例如:如果Hue为0则为红色).而Value是像素的亮度,因此0为黑色,255为白色.
因此,您是否使用直方图,但无论哪种方式,您应首先将图像转换为HSV,然后您可以使用直方图或简单搜索来查找最常见的Hue值.色调值将是您想要的肤色或颜色.如果你想让它更高级一些,你可以考虑饱和度和亮度值的值来决定它实际上是黑色还是白色还是灰色而不是颜色.
我的HSV教程页面上有更多OpenCV RGB到HSV转换信息:
http://www.shervinemami.co.cc/colorConversion.html
直方图表示图像中给定颜色的像素数量。
例如,假设您有这个 3x3 图像:
3 4 3 1 1 1 2 2 1
直方图为: 计数:4 2 2 1 颜色:1 2 3 4
由此您会发现找到最多的颜色是颜色 1。总结非常相似的颜色可能也是有意义的。
例如使用 count(2) = sum(hist(1), hist(2), hist(3)); (是该颜色的像素数)
| 归档时间: |
|
| 查看次数: |
3107 次 |
| 最近记录: |