realsense d435
https://www.cnblogs.com/z1141000271/p/10554341.html
2020.9.16更新
pip install pyrealsense2可以直接安装
测试代码:
import pyrealsense2 as rs
import numpy as np
import cv2
if __name__ == "__main__":
# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
# Start streaming
pipeline.start(config)
try:
while True:
# Wait for a coherent pair of frames: depth and color
frames = pipeline.wait_for_frames()
depth_frame = frames.get_depth_frame()
color_frame = frames.get_color_frame()
if not depth_frame or not color_frame:
continue
# Convert images to numpy arrays
depth_image = np.asanyarray(depth_frame.get_data())
color_image = np.asanyarray(color_frame.get_data())
# Apply colormap on depth image (image must be converted to 8-bit per pixel first)
depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
# Stack both images horizontally
images = np.hstack((color_image, depth_colormap))
# Show images
cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
cv2.imshow('RealSense', images)
key = cv2.waitKey(1)
# Press esc or 'q' to close the image window
if key & 0xFF == ord('q') or key == 27:
cv2.destroyAllWindows()
break
finally:
# Stop streaming
pipeline.stop()
python-pcl:
如果是ubuntu16及以上版本,则使用以下命令
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-dev
https://blog.csdn.net/joker_hapy/article/details/85006818
ubuntu18.04 亲测可用,但是要注意路径问题。
https://github.com/strawlab/python-pcl
获取d435内参和保存图片,这里保存第100帧的图片,因为发现相机刚启动保存的RGB图片偏绿。采用了cv和scipy两种保存形式,各有优劣吧。
import pyrealsense2 as rs
import numpy as np
import cv2
import scipy.misc
import pcl
if __name__ == "__main__":
# Configure depth and color streams
pipeline = rs.pipeline()
config = rs.config()
config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
# Start streaming
pipeline.start(config)
#获取图像
for i in range(100):
data = pipeline.wait_for_frames()
depth = data.get_depth_frame()
color = data.get_color_frame()
# #获取内参
# dprofile = depth.get_profile()
# cprofile = color.get_profile()
#
# cvsprofile = rs.video_stream_profile(cprofile)
# dvsprofile = rs.video_stream_profile(dprofile)
#
# color_intrin=cvsprofile.get_intrinsics()
# print(color_intrin)
# depth_intrin=dvsprofile.get_intrinsics()
# print(color_intrin)
# extrin = dprofile.get_extrinsics_to(cprofile)
# print(extrin)
depth_image = np.asanyarray(depth.get_data())
color_image = np.asanyarray(color.get_data())
# Apply colormap on depth image (image must be converted to 8-bit per pixel first)
depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)
# Stack both images horizontally
images = np.hstack((color_image, depth_colormap))
cv2.imwrite('color.png', color_image)
cv2.imwrite('depth.png', depth_image)
cv2.imwrite('depth_colorMAP.png', depth_colormap)
scipy.misc.imsave('outfile1.png', depth_image)
scipy.misc.imsave('outfile2.png', color_image)