• 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。出现的界面如下所示:

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

    选择Recording选项:

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

    (eg:

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

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

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

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

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

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

    将D:KinectDataTestDepth下的二进制的数据流文件重命名为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格式的深度图像。

    附加:

    RGBD相机的彩色图像和深度图像的分辨率

    RGBD相机型号

    彩色图像分辨率

    深度图像分辨率

    Kinect v1

     

    640x480

    640x480

    320x240

    320x240

     

    Kinect v2

    1920x1080(hd)

    1920x1080(hd)

    960x540(qhd)

    960x540(qhd)

    512x424(sd)

    512x424(sd)

     

    Realsense-ZR300

    1920x1080@30fps

    628x468@60fps

    640x480@60fps

    480x360@60fps

    320x240@60fps

    320x240@60fps

  • 相关阅读:
    os.path等os模块函数
    Eclipse 中 安装 SVN 插件
    Maven 库
    Activiti 学习笔记(2016-8-30)
    Mybatis 操作数据库的主键自增长
    将现有的sql脚本导入 Oracle 数据库,中文乱码问题
    oracle创建表之前判断表是否存在,如果存在则删除已有表
    Cannot change version of project facet Dynamic Web Module to 3.1
    【转】oracle数据库开发的一些经验积累
    Oracle的自增长主键
  • 原文地址:https://www.cnblogs.com/yuanlibin/p/8051616.html
Copyright © 2020-2023  润新知