前言
书接上回(多台Azure Kinect DK同步保存RGB和Depth图片),在同步保存多台设备的rgb和depth图像后,后面的任务就是要进行图像分割,因为只需要人体的图像,不需要室内的杂乱背景图像。关于图像分割算法模型(实际上更侧重于语义分割),我还在做调研。因为昨天看到了官方给出的绿幕事例,就想先看看利用设定深度阈值获取到的前景图像效果咋样,所以就有了这篇小记。
这里我就使用了一台Kinect设备看了一下效果
一、关键代码
1.获取彩色相机和深度相机拍摄的背景图
因为不需要杂乱的背景图像,我这里就直接获取设备拍摄的一张背景图像并全部隐藏(这里其实可以直接使用opencv创建自己想要的背景图像)
/* 获取图像背景 */
vector<k4a::capture> background_captures = capturer.get_synchronized_captures(secondary_config);
k4a::image background_main_color_image = background_captures[0].get_color_image(); // 获取背景的color和depth图像
k4a::image background_main_depth_image = background_captures[0].get_depth_image();
cv::Mat background_colorImage = color_to_opencv(background_main_color_image) = 0; // 转换到opencv中
cv::Mat output_colorImage = background_colorImage.clone()