【问题标题】:Cross detection in image图像中的交叉检测
【发布时间】:2011-12-13 16:43:39
【问题描述】:

我必须找到图像中的十字架。我所知道的是每个红色方块的确切位置。现在我必须决定,广场内是否有十字架。最好和最快的方法是什么?我正在使用 OpenCv/c++!那么,我可以尝试使用 OpenCv 的 SVM 吗?但它快吗?您还有其他想法吗?

【问题讨论】:

  • 你想要:只出现十字架吗? (作为图像中唯一的对象),还是每个十字的一组坐标?我建议进行一些聪明的减法和一些斑点检测。

标签: image-processing opencv machine-learning computer-vision


【解决方案1】:

如果你真的有每个数字框的中心坐标,你也许可以稍微调整一下图像采集,这应该是一个可行的任务。 我在这里看到的问题是,你的图像中有一个亮度梯度,你应该通过拍摄更好的照片或使用大的高斯滤波器和图像减法来消除它。 否则我不确定你会找到一个很好的亮度阈值来区分交叉和非交叉。

您可以使用的另一种方法是计算像素的方差。这为您提供了一个很好的局部测量,无论黑笔是否扩展您的像素分布。快速测试看起来很有希望

请注意,我没有盒子的真实位置。我只是将您的图像分成大小相等的区域,这对于类似框/子框的结构来说并不正确。因此,由于每个左上角的红色三角形以及一些重叠的十字,其中存在一些误报。

这就是我所做的:

  1. 在没有红色通道的情况下拍摄您的图像,并将其设为灰度图像。
  2. 使用半径为 100 的高斯过滤此图像,然后从图像中减去它。
  3. 我将您的图像划分为 (7*6)x(7*2) 个子区域。
  4. 计算了每个子区域的方差,并为上图使用了大约 0.017 的方差阈值
  5. 每个具有较大方差的框都被越过了。

【讨论】:

    【解决方案2】:

    简单的解决方案:如果你知道所有盒子的先验位置,只需计算盒子的平均亮度。带标记的框会比空框暗得多。

    【讨论】:

      【解决方案3】:

      如果不检测红色墨水是一个选项,请保持简单:累积红色方块内的所有像素和“红色”阈值,即红色值的总和除以总颜色值的商。

      【讨论】:

        【解决方案4】:

        只需找到矩形,然后进行简单的像素比较。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-27
          相关资源
          最近更新 更多