一、Azure Kinect 传感器 SDK 下载
Azure Kinect 传感器 SDK 下载 | Microsoft Learn
大家可以通过微软产品官网进行下载相机的sdk,但最新版会有下面将说到的接口一些功能不能使用,其他人建议是v1.4.0版本。
二、进行环境的配置
在anaconda新建一个环境,这里提供我师兄的文章链接,这里不进行讲述了。
第一章:pycharm、anaconda、opencv、pytorch、tensorflow、paddlex等环境配置大全总结【图像处理py版本】_pytorch cpu版本环境配置-CSDN博客
激活环境后,在里面用pip命令下载numpy、opencv-python,之所以要下载,主要是后续我们在进行编写程序时可能用上,不然就之后缺什么库就下什么库了。
三、下载相关储存库
GitHub - ibaiGorordo/pyKinectAzure: Python library to run Kinect Azure DK SDK functions
这里可以直接下载,也可以通过git下载
在激活刚刚创立的环境后,输入下面命令
git clone https://github.com/ibaiGorordo/pyKinectAzure.git
如果没有下载git,就会提示
这里推荐去git官网下载:http://git-scm.com/downloads
选择想要的安装路径,一直默认选择即可。
下载好了,输入下面命令即可知道下载是否。
git --version
接着这里一个技巧,关闭现有的终端,重新打开,激活我们创建的环境,输入git
显示如此即可使用git来下载
接着下载即可
git clone https://github.com/ibaiGorordo/pyKinectAzure.git
后面加个路径即可指定保存路径:(例子)
git clone https://github.com/username/repository.git C:\Projects\MyRepo
四、将储存库添加到环境中
在下载了储存库后,把里面的pykinect_azure文件夹移动到环境安装库目录下:
比如说我的环境外来库地址为:(路径中,kinect为我创建的环境)
移动到该路径下,运行程序即可使用该接口函数了
五、获取图像举例
1、获取rgb图(用pycharm运行程序要在我们创建的环境下)
import cv2
import pykinect_azure as pykinect
# 初始化库,可以库的路径作为参数
pykinect.initialize_libraries()
# 修改相机配置
device_config = pykinect.default_configuration # 默认初始配置
device_config.color_resolution = pykinect.K4A_COLOR_RESOLUTION_2160P # 修改分辨率
# 开启设备
device = pykinect.start_device(config=device_config)
while True:
capture = device.update() # 更新获取
ret, rgb_img = capture.get_color_image()
# rgb_img = cv2.resize(rgb_img, fx=0.5, fy=0.5)
if not ret:
continue
cv2.imshow('rgb image', rgb_img)
cv2.imwrite('216p.jpg', rgb_img)
if cv2.waitKey(1) == ord('q'):
break
该修改相机配置段落中,就是我们下sdk驱动程序里的选项:
2、获取深度图
import cv2
import pykinect_azure as pykinect
pykinect.initialize_libraries()
device_config = pykinect.default_configuration
device_config.color_format = pykinect.K4A_IMAGE_FORMAT_COLOR_BGRA32
device_config.color_resolution = pykinect.K4A_COLOR_RESOLUTION_1536P
device_config.depth_mode = pykinect.K4A_DEPTH_MODE_WFOV_2X2BINNED
device = pykinect.start_device(config=device_config)
while True:
capture = device.update()
ret_color, color_image = capture.get_color_image()
ret_depth, transformed_colored_depth_image = capture.get_transformed_colored_depth_image()
if not ret_color or not ret_depth:
continue
transformed_colored_depth_image = cv2.cvtColor(transformed_colored_depth_image, cv2.COLOR_BGR2GRAY)
alpha = 5 # 可调节对比度
beta = 100 # 可调节亮度
adjusted_image = cv2.convertScaleAbs(transformed_colored_depth_image, alpha=alpha, beta=beta)
cv2.imshow('Transformed Color Depth Image', adjusted_image)
cv2.imwrite('depth_img.jpg', adjusted_image)
if cv2.waitKey(1) == ord('q'):
break
参考文章: