Como alterar o código usando OpenCV para obter a distância entre Intel® RealSense™ série D400 e um objeto
Reescrevo o programa em python para medir distância. Link para a fonte.
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')
Ele desintente a distância conforme o esperado, mas se eu mover o objeto para outro local, ele não me dará mais informações de distância.
Na linha:
dist_to_center = depth_frame.get_distance(int(width/2), int(height/2))
você está lendo a distância apenas do centro do fluxo, e não de qualquer ponto.
Se você quiser distância de qualquer ponto, talvez seja melhor verificar o exemplo do OpenCV DNN,que classifica e o objeto usando o fluxo RGB (vermelho, verde, azul) e depois usa o fluxo de profundidade para calcular a distância do objeto da câmera.