Il s'agit d'un mémorandum lorsque realsense D435 est connecté au PC avec ubuntu 16.04 installé et la vidéo de profondeur est enregistrée avec python.
PC avec ubuntu 16.04 installé realsenseD435
installation de pyrealsense2
pip install pyrealsense2
動画を保存する:record.py 保存した動画を再生する:play.py 保存した動画を連番画像にする:save.py
record.py
import pyrealsense2 as rs
import numpy as np
import cv2
import time
# Configure depth and color streams
config = rs.config()
config.enable_stream(rs.stream.infrared, 1, 640, 480, rs.format.y8, 30)
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
config.enable_record_to_file('d435data.bag')
# Start streaming
pipeline = rs.pipeline()
pipeline.start(config)
start = time.time()
frame_no = 1
try:
while True:
# Wait for a coherent pair of frames: depth and color
frames = pipeline.wait_for_frames()
color_frame = frames.get_color_frame()
depth_frame = frames.get_depth_frame()
ir_frame = frames.get_infrared_frame()
fps = frame_no / (time.time() - start)
print(fps)
frame_no = frame_no+1
if not ir_frame or not color_frame :
ir_image = np.asanyarray(ir_frame .get_data())
depth_image = np.asanyarray(depth_color_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
finally:
pipeline.stop()
play.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyrealsense2 as rs
import numpy as np
import cv2
#courant(Color/Depth/Infrared)paramètres de
config = rs.config()
#↓ Définissez le nom du fichier ici
config.enable_device_from_file('d435data.bag')
#config.enable_device_from_file('./20191229.bag')
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.infrared, 1, 640, 480, rs.format.y8, 30)
#Commencer le streaming
pipeline = rs.pipeline()
profile = pipeline.start(config)
try:
while True:
#En attente d'un cadre(Color & Depth)
frames = pipeline.wait_for_frames()
ir_frame = frames.get_infrared_frame()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()
if not depth_frame or not color_frame or not ir_frame :
continue
# Convert images to numpy arrays
ir_image = np.asanyarray(ir_frame .get_data())
depth_color_frame = rs.colorizer().colorize(depth_frame)
depth_image = np.asanyarray(depth_color_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
# Show images
cv2.namedWindow('ir_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('ir_image', ir_image)
cv2.namedWindow('color_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('color_image', color_image)
cv2.namedWindow('depth_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('depth_image', depth_image)
cv2.waitKey(1)
finally:
# Stop streaming
pipeline.stop()
save.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pyrealsense2 as rs
import numpy as np
import cv2
#courant(Color/Depth/Infrared)paramètres de
config = rs.config()
#↓ Définissez le nom du fichier ici
config.enable_device_from_file('d435data.bag')
#config.enable_device_from_file('./20191229.bag')
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.infrared, 1, 640, 480, rs.format.y8, 30)
#Commencer le streaming
pipeline = rs.pipeline()
profile = pipeline.start(config)
try:
count = 0
while True:
count_padded = '%05d' % count
count += 1
#En attente d'un cadre(Color & Depth)
frames = pipeline.wait_for_frames()
ir_frame = frames.get_infrared_frame()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()
if not depth_frame or not color_frame or not ir_frame :
continue
# Convert images to numpy arrays
ir_image = np.asanyarray(ir_frame .get_data())
depth_color_frame = rs.colorizer().colorize(depth_frame)
depth_image = np.asanyarray(depth_color_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
write_file_name_color = "color_" + count_padded + ".jpg "
cv2.imwrite(write_file_name_color, color_image)
write_file_name_depth = "depth_" + count_padded + ".jpg "
cv2.imwrite(write_file_name_depth, depth_image)
# Show images
cv2.namedWindow('ir_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('ir_image', ir_image)
cv2.namedWindow('color_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('color_image', color_image)
cv2.namedWindow('depth_image', cv2.WINDOW_AUTOSIZE)
cv2.imshow('depth_image', depth_image)
cv2.waitKey(1)
finally:
# Stop streaming
pipeline.stop()
Pour convertir l'image enregistrée en vidéo Générer une vidéo à partir d'une image de numéro de série avec ffmpeg / Générer une image de numéro de série à partir d'une vidéo ~ Pour éviter les chutes d'images ~ Semble être bon.
J'utilise la série python2.7, mais si c'est plus que cela, une erreur peut se produire. ..
Exécution de Realsense D435 d'Intel Enregistrement et sortie avec Realsense D435 d'Intel Détection 3D à partir de Python !! Générer une vidéo à partir de l'image du numéro de série avec ffmpeg / Générer une image du numéro de série à partir de la vidéo ~ Comment éviter les chutes d'images ~
Recommended Posts