Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 图像中的交叉检测_Image Processing_Opencv_Machine Learning_Computer Vision - Fatal编程技术网

Image processing 图像中的交叉检测

Image processing 图像中的交叉检测,image-processing,opencv,machine-learning,computer-vision,Image Processing,Opencv,Machine Learning,Computer Vision,我必须找到图像中的十字架。我知道的是每个红场的确切位置。现在我必须决定,广场里面是否有十字架。做这件事最好最快的方法是什么?我正在使用OpenCv/c++!那么,我可以尝试使用OpenCv的SVM吗?但是它快吗?您还有其他想法吗?如果不检测红色墨水是一个选项,请保持简单:将红色正方形内的所有像素和“红色度”上的阈值累加,即红色值之和除以总颜色值的商 简单解决方案:如果你知道所有盒子的先验位置,只需计算盒子的平均亮度即可。带有标记的框比空框暗得多。如果您确实有每个数字框中心的坐标,并且您可以稍微调

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

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

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

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

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

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

以下是我所做的:

  • 在不使用红色通道的情况下拍摄图像,并使其成为灰度图像
  • 使用高斯半径100过滤此图像,并从图像中减去此值
  • 我把你的图像分成(7*6)x(7*2)个子区域
  • 计算每个子区域的方差,并对上述图像使用约0.017的方差阈值
  • 每一个差异较大的盒子都被划过

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

    是否希望:只显示十字?(作为图像中唯一的对象)或每个交叉点的一组坐标?我建议做一些聪明的减法和斑点检测。