Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤

Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤

一、在ubuntu下尝试

1. 在虚拟机VWware Workstation 12.0安装ubuntu14.04按照《Ubuntu安装Kinect v1驱动(openni、NITE、Sensor)及遇到的问题》安装了Kinect v1的驱动,但是最终运行示例出现的窗口和网址提供的不一样,右侧彩色图都是重叠起来的,并且一直在跳动。原因可能是由于kinect v1在虚拟机上驱动有问题,不能运行。

2. 在双系统的ubuntu14.04中按照《Ubuntu安装Kinect v1驱动(openni、NITE、Sensor)及遇到的问题》安装了Kinect v1的驱动,操作之后就可以运行了。但是保存下来的彩色和深度图像都是截屏生成的图像,而不是原始数据。然后利用rqt方法(《ROS视觉和图像-Kinect V1使用》)保存下来的彩色图和深度图均为640*480的三通道的图像,而深度图的原始图像应为16位的单通道图像。综上,ubuntu系统下无法保存深度图像的原始数据。

二、在window10系统下完成Kinect v1 的彩色和深度图像对的采集

Kinect v1的彩色和深度图像对window下采集需要的驱动和软件在百度网盘下载。链接:https://pan.baidu.com/s/1bpydLGb 密码:utjq。

1. 在windows下安装kinect_v1的驱动KinectSDK-v1.8-Setup.exe。

2. 通过usb2.0或者usb3.0连接kinect v1到电脑。

3. 打开KinectSaver文件夹下的KinectExplorer-D2D.exe。出现的界面如下所示:

Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤_第1张图片

4. 右下角有声音、加速度和tilt角度和Recording选项

选择Recording选项:

首先选择保存数据的盘符、文件夹名称

(eg:

Local Disk: D;会自动在D盘生成文件夹KinectData。

Folder Name: Test; 会自动在D:\KinectData\Test下生成两个文件夹Color和Depth)

然后color选择image,depth选择binary选项。

彩色图像保存的是位深度为32的bmp图像(应该是4通道图像,但是第4个通道没有数据,所以在matlab下显示的是3通道数据),

深度数据保存的是二进制的数据流(如果depth选择image直接保存的话,保存的深度图也是位深度为32位的bmp图像,不是原始数据,深度图原始数据为16位的单通道图像)。

 

5. 在D:\KinectData\Test路径下的深度数据是二进制的数据流需要处理得到真正的16位的单通道图像。

将D:\KinectData\Test\Depth\下的二进制的数据流文件重命名为test.binary。在matlab软件中新建一个脚本文件Kinectv1outputdepth.m。

%Kinectv1outputdepth.m
clc
clear all

size_s=480*640; %输入的图像的大小

fid = fopen('test.binary');
R = fread(fid,'uint16'); %读入文件并转化为16位深度信息
fclose(fid);

num=length(R)/size_s;   %计算里面包含多少张图片
G = reshape(R, size_s,num);  %把长向量转换为每张图片深度信息为一行的矩阵

for i=1:num
    eval(['S',num2str(i),'=','G(:,',num2str(i),');']) %逐行提取出深度信息行向量
    eval(['data',num2str(i),'=','(reshape(S',num2str(i),',640,480))'';']) %把行向量转换为480*640的矩阵形式
    eval(['data',num2str(i),'=','(uint16(data',num2str(i),'));']) %批量强制转换
    %eval(['mirror',num2str(i),'=','fliplr(data',num2str(i),');']) %由于采集到的深度信息是镜像的,对其进行镜像恢复
end

for i=1:num
    eval(['imwrite(data',num2str(i),',''data',num2str(i),'.png'');']) %循环保存深度图像
end

6. 最后将深度图像保存为位深度是16的png格式的深度图像。

 

转载于:https://www.cnblogs.com/yuanlibin/p/8051616.html

你可能感兴趣的:(Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤)