Identyfikator artykułu: 000038064 Typ materiałów: Konserwacja i wydajność Ostatnia zmiana: 08-07-2021

Odległość nieczytana dla przedmiotów, które nie znajdują się w centrum z Intel® RealSense™ korzystających z języka Python

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Podsumowanie

Jak zmienić kod za pomocą OpenCV, aby uzyskać odległość między Intel® RealSense™ D400 i obiektem

Opis

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.

Rozwiazanie

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.

Zastrzeżenie

1

Publikowanie treści i wykorzystanie zawartości tej witryny podlega Regulaminowi witryny Intel.com.

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.