图像中的交叉检测

时间:2011-12-13 16:43:39

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

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

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

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

lotto processing

请注意,我没有盒子的真实位置。我只是将你的图像划分为相同大小的区域,这对于盒子/子盒子结构来说并不是真正正确的。因此,由于左上角的红色三角形和一些重叠的十字架,因此存在一些误报。

所以这就是我所做的:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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