実現したいこと
Intel RealSense D435iとpythonを用いてRealSenseから得られる深度情報をもとに動いている物体を検知するプログラムを作成しようとしています.
方針
方針としては,現在のフレームと1つ前のフレームの各ピクセルの深度の差を求めて,閾値を超えたら通知するといったものを考えています.
問題
現在のフレームの深度情報を得ることはできるのですが,1つ前のフレームの深度情報を得る方法が分かりません.
該当のソースコード
ソースコードはこちらを参考にしています.
リンク内容
python
1# -*- coding: utf-8 -*- 2 3import pyrealsense2 as rs 4import numpy as np 5import cv2 6 7# ストリーム(Depth/Color)の設定 8config = rs.config() 9config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 60) 10config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 60) 11 12# ストリーミング開始 13pipeline = rs.pipeline() 14profile = pipeline.start(config) 15 16# 距離[m] = depth * depth_scale 17depth_sensor = profile.get_device().first_depth_sensor() 18depth_scale = depth_sensor.get_depth_scale() 19clipping_distance_in_meters = 10.0 # meter 20clipping_distance = clipping_distance_in_meters / depth_scale 21 22# Alignオブジェクト生成 23align_to = rs.stream.color 24align = rs.align(align_to) 25 26np.set_printoptions(threshold=np.inf, precision=3) 27 28 29try: 30 while True: 31 # フレーム待ち(Color & Depth) 32 frames = pipeline.wait_for_frames() 33 aligned_frames = align.process(frames) 34 color_frame = aligned_frames.get_color_frame() 35 depth_frame = aligned_frames.get_depth_frame() 36 if not depth_frame or not color_frame: 37 continue 38 39 color_image = np.asanyarray(color_frame.get_data()) 40 depth_image = np.asanyarray(depth_frame.get_data()) 41 # Depth画像前処理(1m以内を画像化) 42 grey_color = 153 43 depth_image_3d = np.dstack((depth_image,depth_image,depth_image)) 44 bg_removed = np.where((depth_image_3d > clipping_distance) | (depth_image_3d <= 0), grey_color, color_image) 45 46 # 深度情報保存 47 np.save("save.npy", depth_image) 48 49 # レンダリング 50 depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET) 51 images = np.hstack((bg_removed, depth_colormap)) 52 cv2.namedWindow('Align Example', cv2.WINDOW_AUTOSIZE) 53 cv2.imshow('RealSense', images) 54 if cv2.waitKey(1) & 0xff == 27: 55 break 56 57finally: 58 # ストリーミング停止 59 pipeline.stop() 60 cv2.destroyAllWindows()
補足情報
windows
Python 3.6.8
opencv-contrib-python 4.1.1.26
pyrealsense2 2.29.0.1124
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。