4

跟进我的另一个问题,你们知道 OpenCV 中有一个很好的例子吗,有一个简单的黑白校准图片和适当的检测算法?

我只想在屏幕上显示一些黑白图像,从远处拍摄该图像并计算显示图像的大小,以计算到所述屏幕的距离。

在我再次发明轮子之前,我认为这很容易,可以通过 OpenCV 中的许多不同方式实现,但我想我会问是否有首选的方式,可能有一些示例代码。

(我已经使用 haarcascade-xml 文件运行了一些面部检测代码)

PS:我已经覆盖了屏幕的分辨率/dpi 部分,所以我知道我的屏幕上的图片有多大(以厘米为单位)。

编辑:

我会让它变得非常简单,我需要:

  1. 一种模式,在图像中很容易识别。现在我正在试验棋盘格。制作 ARDefender 的人使用了这个
  2. 一种适当的算法,可以告诉我使用 OpenCV 的图片中图案 1) 的确切像素坐标。
4

2 回答 2

1

嗯,很难说哪个图像最适合识别——在不同的照明下,任何颜色都可以被解释为另一种颜色。简单的例子:

示例示例

如您所见,两个交通标志都有红色边框,但即使在一张图像上,标志上的边框也显然不是红色的。

所以在我看来,你应该使用许多不同颜色的图像(比如彩虹)。你还说它应该在不同的角度很容易识别。这就是为什么圆形最适合它。

这就是为什么您的图像应如下所示:

例子

因此检测此类对象的想法如下:

  1. 进行不同的颜色分割(蓝色、红色、绿色等)。为此,请使用 HSV 颜色空间。
  2. 检测图像上特定颜色的圆圈。
  3. 具有最大圈数的区域似乎是您的对象。
于 2012-06-27T18:41:08.703 回答
0

您只需从几个已知距离(1m、2m、3m...)拍摄您的黑白物体,然后为每个距离检查相应图像中物体的大小。从这些数据中,您将能够创建一个线性函数,为您提供与像素大小的距离(y = ax + b 应该这样做;)),将其转换为您的代码,您就完成了。干杯

于 2012-06-27T18:02:06.967 回答