当给出如下图像时:

enter image description here

并且不知道图像中对象的颜色,我希望能够自动找到最佳的H,S和V范围来阈值对象本身,以获得如下结果:

enter image description here

在这个例子中,我手动找到了值并使用cv :: inRange对图像进行了阈值处理 .
我正在寻找的输出是最好的H,S和V范围(每个最小和最大值,总共6个整数值)来阈值图像中的给定对象,而不事先知道对象是什么颜色 . 我需要稍后在我的代码中使用这些值 .
要记住的要点:

  • 所有给定的图像大小相同 .
  • 所有给定的图像将具有相同的深色背景 .
  • 我将放入图像中的所有物体都是全彩的 .

我可以对6个HSV范围值的所有可能排列进行暴力破解,每个阈值的阈值,并找到一个聪明的方法来确定何时找到最佳斑点(斑点大小可能?) . 这似乎是一个非常麻烦,冗长且无效的解决方案 .

接近这个有什么好办法?我做了一些研究,发现OpenCV具有一些机器学习功能,但我需要在过程结束时获得实际的6个值,而不仅仅是阈值图像 .