【问题标题】:OpenCV Adaptive Thresholding a HSV imageOpenCV 自适应阈值化 HSV 图像
【发布时间】:2016-02-03 17:51:45
【问题描述】:

我们(我和我的团队)希望能够追踪一只手(主要是食指尖)。手的颜色与图片中的脸基本相同,但正如您所见,我们得到的很多噪点也是如此。它在手后有一个黑色“屏幕”时效果很好。

现在的问题是自适应阈值仅对灰度图像有用,因此不能很好地检测到手。

我尝试在谷歌上搜索 HSV 自适应阈值但没有运气,所以我认为 stackoverflow 有一些很棒的想法。

编辑:当前 HSV -> 二进制阈值:

inRange(hsvx, Scalar(0, 50, 0), Scalar(20, 150, 255), bina);

【问题讨论】:

  • 将 HSV 图像分割成不同的通道。!!为每个通道创建一个轨迹栏。!!您可以改变轨迹栏中的值并将这些值分配给 inRange 以过滤像素值。

标签: c++ opencv threshold adaptive-threshold


【解决方案1】:

我建议您使用颜色直方图进行跟踪。例如,Camshift 正在这样做并取得了巨大的成功。

OpenCV 中有 camshift 示例代码。 见http://docs.opencv.org/master/db/df8/tutorial_py_meanshift.html(非常简短的解释) 或https://github.com/Itseez/opencv/blob/master/samples/cpp/camshiftdemo.cpp(代码示例)

如果您想使用阈值,您已经可以不对 V 通道设置阈值。我仍然建议对 H 和 S 进行单独的自适应阈值处理。

【讨论】:

    【解决方案2】:

    我建议您使用直方图反投影算法。

    反向投影是一种记录给定图像的像素与直方图模型中像素分布的匹配程度的方法。您可以使用手动选择的手部像素集来指定直方图模型. 该算法输出一个图像,其中每个像素具有似然值,该像素的颜色是皮肤的颜色(类似于皮肤)。然后,您可以指定一个可能性阈值来调整性能。

    它会让你找到图像中的肤色区域。

    详情见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2022-01-20
      • 2017-09-28
      • 1970-01-01
      • 2012-11-03
      相关资源
      最近更新 更多