Jak zmienić kod za pomocą OpenCV, aby uzyskać odległość między Intel® RealSense™ D400 i obiektem
Reastytuję program w języku python do pomiaru odległości. Łącze do źródła.
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')
Wytyczy on odległość zgodnie z oczekiwaniami, ale jeśli przesuną obiekt w inne miejsce, nie da mi on informacji o odległości.
Na linii:
dist_to_center = depth_frame.get_distance(int(width/2), int(height/2))
czytasz odległość tylko od środka strumienia, a nie z dowolnego punktu.
Jeśli chcesz uzyskać odległość od dowolnego punktu, warto sprawdzić przykład OpenCV DNN,który klasyfikuje i obiekt za pomocą strumienia RGB (czerwonego, zielonego, niebieskiego, niebieskiego), a następnie wykorzystuje strumień głębokości, aby obliczyć odległość tego obiektu od kamery.