前言
1. 相机驱动和SDK的准备
在Ubuntu 18.04系统下安装Azure Kinect DK 深度相机驱动和SDK,可以参考我的另一篇博客:https://blog.csdn.net/denkywu/article/details/103177559。
到这儿,基本的准备工作已经完成了:连接上相机后,打开Azure Kinect 查看器(运行 sudo ./k4aviewer ),选择不同的相机配置,打开相机,能够正常运行,查看到相机RGB图,IR图,深度图等。
2. 开发环境的准备
下面获取数据时利用了OpenCV,所以需要先安装配置好OpenCV,这里就不再详述了(我使用的版本是opencv 3.4.7)。
3. 本文可获取的数据
本文可获取的图像数据为:rgb图像,ir红外图像,深度图像;以及和深度图像同坐标系下的的点云xyz数据。
获取图像数据
1. 参考了博客https://blog.csdn.net/qq_40936780/article/details/102634734中的代码(感谢),但其代码貌似有些问题,因为 depth_out 并未声明和定义,无法通过编译。
2. 我在上述博客基础上更改,并又参考了官方github中的example。我给出的一个示例如下:
// C++
#include <iostream>
// OpenCV
#include <opencv2/opencv.hpp>
// Kinect DK
#include <k4a/k4a.hpp>
// 宏
// 方便控制是否 std::cout 信息
#define DEBUG_std_cout 0
int main(int argc, char* argv[])
{
/*
找到并打开 Azure Kinect 设备
*/
// 发现已连接的设备数
const uint32_t device_count = k4a::device::get_installed_count();
if (0 == device_count)
{
std::cout << "Error: no K4A devices found. " << std::endl;
return EXIT_FAILURE;
}
else
{
std::cout << "Found " << device_count << " connected devices. " << std::endl;
if (1 != device_count)// 超过1个设备,也输出错误信息。
{
std::cout << "Error: more than one K4A devices found. " << std::endl;
return EXIT_FAILURE;
}
else// 该示例代码仅限对1个设备操作
{
std::cout << "Done: found 1 K4A device. " << std::endl;
}
}
// 打开(默认)设备
k4a::device device = k4a::device::open(K4A_DEVICE_DEFAULT);
std::cout << "Done: open device. " << std::endl;
/*
检索 Azure Kinect 图像数据
*/
// 配置并启动设备
k4a_device_configuration_t config = K4A_DEVICE_CONFIG_INIT_DISABLE_ALL;
config.camera_fps = K4A_FRAMES_PER_SECOND_30;
config.color_format = K4A_IMAGE_FORMAT_COLOR_BGRA32;
config.color_resolution = K4A_COLOR_RESOLUTION_1080P;
// config.depth_mode = K4A_DEPTH_MODE_NFOV_UNBINNED;
config.depth_mode = K4A_DEPTH_MODE_WFOV_2X2BINNED;
config.synchronized_images_only = true;// ensures that depth and color images are both available in the capture
device.start_cameras(&config);
std::cout << "Done: start camera." << std::endl;
// 稳定化
k4a::capture capture;
int iAuto = 0;//用来稳定,类似自动曝光
int iAutoError = 0;// 统计自动曝光的失败次数

4215

被折叠的 条评论
为什么被折叠?



