java - 如何使用相机获取一个物体到另一个物体的距离?

标签 java image-processing camera robotics object-recognition

我的 FRC(机器人)团队在图像处理方面遇到问题,明天是我们赛前的最后一个测试日。 相机朝下并沿 x 方向倾斜。我们正在尝试计算物体到同一表面上的固定点的距离。我们只需要计算 x 距离(以英寸为单位)。

Here's a diagram. 该对象可以位于与固定点连线上的任何位置。

Here is the view from the camera

卷尺代表图中的线。 我知道这是低分辨率的照片,不是最好的照片,是我今天离开前拍的。卷尺是物体可能在的地方。我们只关心它的 x 位置。

其他信息(如果需要):

  • 相机:Pixy
  • 焦距:28 毫米(1.1024 英寸)
  • 传感器尺寸:0.25 英寸
  • 相机距离表面(本例中为地面)的高度:8 英寸

我们总是知道物体的x位置(以像素为单位),我们只需要计算物体距固定点的距离(以英寸为单位)。

如果还有其他问题请询问。谢谢。

最佳答案

您的卷尺图像是在正确的轨道上。您需要做的就是手动(从该图像)确定每个 x 位置(像素)的英寸(从零开始)。创建一个可在代码中使用的查找表。

当您确定对象的 x 位置和固定点的 x 位置时,查找每个 x 位置的英寸并减去以获得对象和固定点之间的距离。

这种方法非常简单,但也取决于系统的正确校准。特别是,操作设置(高度、角度、相机光学器件等)必须与拍摄用于创建查找表的测试图像时的设置完全匹配。

标准技术是在操作设置可能发生变化时通过拍摄和处理校准图像来校准系统。例如,您可以在视野中放置网格图案(例如,一英寸见方)。这个想法是,您编写一个校准分析代码,该分析将根据标准图像确定正确的查找表值。

关于java - 如何使用相机获取一个物体到另一个物体的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54758743/

相关文章:

ios - 在 iphone 模拟器上使用 UIImagePickerController

c# - XNA View Matrix - 寻求解释

java - 是否可以在全局范围内了解 FocusOwner(Java)?

java - 如何使用java和opencv检测png文件中的颜色?

opencv - 优化多个相机的立体校准过程

java - 在 Java 中放大和缩小图像

python - 将 ffprobe 与 Python 一起使用时无法识别文件类型

java - 如果发生异常,Java 线程是否需要清理

java - Spring FileSystemResource 下载文件,同时保留原始文件名

java - 将字符串从 Java 程序传递到 Python 程序