【发布时间】:2012-02-03 22:42:36
【问题描述】:
我已经看到关于皮肤 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);
这个范围的问题 ( { 0,30,60,0 & 20,150,255,0 } )它是否甚至可以检测到红色,并且当您将手放在红色背景中时,它不会跟踪您的皮肤...
请帮助!!!
【问题讨论】:
-
那么非裔美国人呢(如果这不再是正确的术语的话)?还是美洲原住民?还是印度人?还是澳大利亚原住民?还是小绿人?
-
我说的是一般...应该是针对人类皮肤的...如果是这种情况,请给我不同的范围...我认为我们可以将 cvInRangeS 用于多个范围...跨度>
-
这就是你的问题。由于您只对人类感兴趣(而且我假设您不赞同一些将其他种族视为非人类的奇怪种族主义哲学),我们只能数出小绿人。这仍然留下了一个大量颜色范围来满足。现在我假设这是用照片或视频做一些事情(告诉皮肤和其他所有东西之间的区别)所以,除非你的照片以某种方式被标记为只包含白种人或原住民之类的东西,否则能够分辨出差异的机会人类与非人类之间的差距很小。即使是多范围。
-
现在这可能是可行的,如果有更多的限制,或者我假设你的实际需要完全错误。在这种情况下,请告诉我们。
-
@paxdiablo 我想追踪手...基本上是手表的AR...在那个用户将他的手保持在手的模板图像中,我们得到手腕与数字的距离。我们可以做的更多是让用户点击特定位置并获取 hsv 值...请帮助我....
标签: image-processing opencv computer-vision skin hsv