困ったこと
以下のソースコードでRealSenseで得た画像からピクセル座標指定で深度を取得しようとしました
test.py
frames = pipeline.wait_for_frames() # realsenseから画像取得
depth_frame = flames.get_depth_frame # 画像から深度画像取得
# フィルター処理
temporal = rs.temporal_filter()
depth_frame = temporal.process(depth_frame)
# 深度画像からピクセル座標(100, 100)の深度を取得
distance = depth_frame.get_distance(100, 100)
すると以下のようなエラーが起きます。
distance = depth_frame.get_distance(100, 100)
AttributeError: 'pyrealsense2.pyrealsense2.frame' object has no attribute 'get_distance'
フィルター処理しなければこのようなエラーは起きません。
しかしフィルター処理した後のdepth_frameからはget_distance関数が呼べないそうです。
解決方法
フィルター処理した後に以下のコードを追加します。 depth_frame = depth_frame.as_depth_frame()
すなわち最初のソースコードは以下のように修正されます
test.py
frames = pipeline.wait_for_frames() # realsenseから画像取得
depth_frame = flames.get_depth_frame # 画像から深度画像取得
# フィルター処理
temporal = rs.temporal_filter()
depth_frame = temporal.process(depth_frame)
depth_frame = depth_frame.as_depth_frame() # ←追加
# 深度画像からピクセル座標(100, 100)の深度を取得
distance = depth_frame.get_distance(100, 100)