在颜色校准图表opencv python中检测丢失的正方形

问题描述 投票:0回答:1

我正在研究一种从macbeth颜色图表中提取颜色的方法。到目前为止,通过使用阈值处理然后提取方形轮廓,我获得了适度的成功。可悲的是,彼此太接近的颜色要么混合在一起要么没有被检测到。

它的当前形式的代码:

<script src="https://pastebin.com/embed_js/mNi0TcDE"></script>

The image before any processing

在阈值处理后,您可以看到由于颜色差异太小而存在线条不完整的区域。我试图使用扩张来缓解这些问题,并且它确实在某种程度上起作用。但还不足以检测所有方块。

Image after thresholding

这导致检测到以下轮廓

Detected contours

我尝试过使用:

  1. 霍夫线,遗憾的是没有检测到线条。
  2. 轮廓的质心,但我无法找到一种方法来使用质心绘制线条并检测缺失轮廓的中心
  3. 角落检测,发现角落。但是我没有找到一种真正的方法来使用它们。

谁能指出我正确的方向?

在此先感谢,电子邮件

opencv charts colors detection square
1个回答
0
投票

嗯,如果你的目标是颜色校准,你真的不需要完整地检测方块。每个物理方块图像中心附近的10x10样本将为您提供100个颜色样本,这对于任何合理的校准过程都是足够的。

有很多方法可以解决这个问题。如果您可以保证图表将覆盖图像,您甚至可以只进行k-means聚类,因为您事先知道所寻找的聚类的确切数量。

如果你坚持使用几何,我会在比例+角度空间进行模板匹配 - 可以合理地假设图表主要面向,并且只是略微旋转,所以你只需要估算比例和一个小的旋转轴与图表正交。

© www.soinside.com 2019 - 2024. All rights reserved.