图像中的交叉检测

Ben*_*Ben 4 opencv machine-learning image-processing computer-vision

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

sas*_*nin 5

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


hal*_*tan 5

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

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

乐透处理

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

所以这就是我做的:

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