文章 ID: 000038064 内容类型: 维护与性能 上次审核日期: 2021 年 07 月 08 日

对使用 Python 的摄像头不在中心的英特尔® 实感™读取距离

BUILT IN - ARTICLE INTRO SECOND COMPONENT
总结

如何使用 OpenCV 更改代码,以获得 D400 系列与英特尔® 实感™之间的距离

说明

我将程序用 Python 重新编写,用于测量距离。链接到 源代码

while True:
       frames = pipeline.wait_for_frames()
       depth_frame = frames.get_depth_frame()
       if not depth_frame: continue
        width = depth_frame.get_width()
        height = depth_frame.get_height()
        #print(width,height)
        
        #Calculate distance
        dist_to_center = depth_frame.get_distance(int(width/2), int(height/2))
        print('The camera is facing an object:',dist_to_center,'meters away')


它会如预期输出距离,但如果我将对象移动到另一个位置,它不再为我提供距离信息。

解决方法

行中:

dist_to_center = depth_frame.get_distance(int(width/2), int(height/2))

您只从流中心读取距离,而不是从任何点读取距离。

如果您想获得与任意点的距离,您可能要检查 OpenCV DNN示例,该示例使用 RGB(红色、绿色、蓝色)流对对象进行分类,然后使用深度流计算对象与摄像头之间的距离。

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。