近来太懒了,想拿起Python玩玩,突然想到可以把手边的D435i配置一下,在windows下利用python调调;经过几个小时的配置,解决了一些问题,总结如下;
由于只使用RGB和深度图,不使用IMU,因此D435i和D435配置是完全相同的;
Note:如果你想最快的入手配置环境,可以只看第三部分【配置过程】即可,其他部分都是楼主啰嗦多说的。
以下是尝试的几种方法;
参考教程:[2]Intel RealSense D435介绍、安装和使用
这里我按照教程将我x64下几个文件移到对应环境的site-packages下,仍然不行,运行结果仍旧显示找不到pyrealsense这个模块。
另外安装windows SDK时,它会自动安装在C盘上:C:\Program Files (x86)\Intel RealSense SDK 2.0
ERROR: Could not find a version that satisfies the requirement pyrealsense2
ERROR: No matching distribution found for pyrealsense2
这里我直接按照,报错如上所示;这里问题应该出现下软件源上。
基本配置信息:Pycharm(IDE)-anaconda-Python3.6-numpy-opencv4.0.1(非必须版本)-pyrealsense2
首先,我的python环境是通过anaconda维护的, anaconda可以很方便的维护和调用不同版本的python编译器和其下属的各种包资源。
这里由上图可知,目前pyrealsense2的包仍然只支持python2.7和python3.6版本,我本来用的是python3.8版本,这里使用anaconda重新安装了一个python3.6版本。配置过程如下:
在conda终端下使用命令:
#创建python3.6环境
conda create -n python3.6 python=3.6
#激活使用python3.6
activate python3.6
然后在pycharm编辑器中选择这个python3.6的环境
Note:配置环境时,不要连接摄像头设备
安装pyrealsense2、opencv、numpy,你可以直接在anaconda下搜索pyrealsense2、opencv-python、numpy安装:
如果这里你的pycharm上找不到相应的包,则是你的conda源的问题,numpy和opencv比较常见,但是pyrealsense2这个包很多软件源是没有的,这里推荐官方默认的软件源,或者使用下述软件源:
#首先恢复默认源
conda config --remove-key channels
#如果默认源下载速度较慢,可以更换下述软件源
conda config --add channels
conda config --add channels https://pypi.mirrors.ustc.edu.cn/simple/
conda config --add channels https://mirrors.aliyun.com/pypi/
conda config --add channels https://pypi.doubanio.com/simple/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
当然,这里您也可以直接使用pip安装相应的包,但记得先激活相应的python环境!
测试代码如下:
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()
输出效果:
这里有个现象还没有弄清,就是图上RGB的图上有些紫色的小点点,目前测试它只会分布在人体周围,具体原因不清楚,后续解决…
可以看出,利用编程软件配置导出的深度图像和直接用官方软件导出的原始图像还是有了很大的优化,去除了很多未探测到的小黑点噪声。
这里面是我一些记录笔记;
关于pip换源
这里记得后续使用pip安装避免换源,统一使用零时换源方法,如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
参考博文链接:https://blog.csdn.net/u012525096/article/details/98070898
激活对应版本的python环境
activate python3.6
关于anaconda
anaconda这两个终端的区别:两者的主要功能是一致的,就是powershell支持更多的命令,比如ls、pwd etc.
如果文中有什么错误或者您有什么疑问,欢迎通过评论或者私信联系我,提前表示感谢!
最后,适逢春节,给大家拜个早年,祝大家2022年新年快乐,工作顺利!
[1]、官方Python版本环境配置文档
文档链接: https://github.com/IntelRealSense/librealsense/tree/master/wrappers/python.
[2]、CSDN博文:Intel RealSense D435介绍、安装和使用
博文链接: https://blog.csdn.net/cherry_yu08/article/details/83279851.