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:\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格式的深度圖像。
附加:
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 |