我想在一组图像中跟踪颜色。因此,我使用了提到的恒定阈值算法自动移动机器人简介. 。此方法仅标记所有的像素,这些像素是红色,绿色,蓝色(或色相,饱和,值,在我的情况下)的最小和最大阈值。

我的问题是 - 尽管HSV对变化的光条件不太敏感,但我仍然想设置从程序中设置阈值,以最大程度地减少误报和假阴性的数量。换句话说,算法将确保仅在末端标记给定的像素集,例如校准图像上的矩形。

我知道问题是在6维参数空间中进行的搜索,我可以提出可能的解决方案,但我正在寻找其他程序员对此主题的看法和经验。

如果有重要的话,我尝试在C ++中实现它 OPENCV.

有帮助吗?

解决方案

据我了解这个问题 您正在寻找从包含您的跟踪标记的校准图像中校准6个阈值(每个HSV通道的最小值)(每个HSV通道的最大值). 。为了实现这一目标:

  1. 第一次手动 描绘该地区, ,在校准图像中,标记出现
  2. 计算该区域的直方图, ,每个HSV频道一个
  3. 设置 最小和最大阈值 直方图百分位数分别为0.05和0.95

不使用直方图的最小值和最大值,而是其0.05和0.95个百分位数有助于该措施对噪声更强大。

编辑:

修改第二步:如果要最大程度地减少错误,则可以建立一个 规范 标记的直方图 归一化 环境的直方图(这可以是2个单独的图像),并从第一个减去后者。所得标记直方图将使背景像素值减弱。这将影响上述百分位数的值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top