我已经看到了所有关于皮肤HSV颜色空间范围的问题
但我只能弄清楚
代码-
CvScalar hsv_min = cvScalar(0, 30, 60, 0);
CvScalar hsv_max = cvScalar(20, 150, 255, 0);
//range I am using is { 0,30,60,0 & 20,150,255,0 }
cvCvtColor(src, hsv_image, CV_BGR2HSV);
cvInRangeS (hsv_image, hsv_min, hsv_max, hsv_mask);
cvDilate(hsv_mask,hsv_mask,0,1);
cvErode(hsv_mask,hsv_mask,0,1);
cvSmooth( hsv_mask, hsv_mask, CV_MEDIAN);
...
请帮助!!!
最佳答案
基本上,很难为皮肤设置一个固定的颜色范围,因为即使您只想检测自己的皮肤,其颜色实际上也会根据光照条件发生很大变化。
因此,也许您可以使用2011年这篇出色的科学文章的想法:
http://www.robots.ox.ac.uk/~vgg/research/hands/
基本上,他们会检测到脸部(使用oepncv很容易)。然后,他们提取脸部的肤色(这对于图像上的人来说是非常特定的)。然后他们使用这种颜色检测皮肤。由于颜色是非常特定的,因此与固定颜色范围内的颜色相比,它们应该少得多的错误检测。