Kinect 學習j記錄 one

2021-08-21 19:56:59 字數 2237 閱讀 5712

kinect(light coding)就是以紅外線發出人眼看不見的class1雷射光,透過鏡頭前的diffuser(光柵、擴散片)將雷射光均勻分布投射在測量空間中,再透過紅外線攝影機記錄下空間中的每個散斑,擷取原始資料後,再透過晶元計算成具有3d深度的影象。

工具:sdk+opencv+vs2017

kinect 2.0開發第一步,研究kinect2.0 api。 

本文主要是翻譯官方文件,另外加入自己的一點理解和實驗 

文件**: 

1.api分類 

主要分為三類 

1)windows系統執行api(windows runtime apis )。 

2).net api 

3)原始api(native apis)

kinect v1,可以讀取投射的紅外線pattern,從pattern的變形獲取depth的資訊,搭載了「light coding」方式的depth感測器。kinect v2預覽版,通過從投射的紅外線脈衝反射回來的時間來獲得depth的資訊,變更為「time of flight(tof)」方式的depth感測器。

light coding,顧名思義,就是用光源照明給需要測量的空間編上碼,屬於結構光技術的一種,只是深度計算方式不一樣。結構光(structured lighting)是將一維或二維的影象投影至被測物上,根據影象的形變情形,判斷被測物的表面形狀,可以非常快的速度進行掃瞄,相對於一次測量一點的探頭,此種方法可以一次測量多點或大片區域,故能用於動態測量。

與普通結構光法不同的是,light coding的光源稱為「雷射散斑」,是雷射照射到粗糙物體或穿透毛玻璃後隨機形成的衍射斑點。這些散斑具有高度的隨機性,而且會隨著距離的不同而變換圖案。也就是說空間中任意兩處的散斑圖案都是不同的。只要在空間中打上這樣的結構光,整個空間就都被做了標記,把乙個物體放進這個空間,只要看看物體上面的散斑圖案,就可以知道這個物體在什麼位置了。當然,在這之前要把整個空間的散斑圖案都記錄下來,所以要先做一次光源標定。

time of flight是一種主動式深度感應技術,其使用雷射探測目標物。顧名思義,time of flight就是去計算光線飛行的時間。首先讓裝置發出脈衝光,並且在發射處接收目標物的反射光,藉由測量時間差算出目標物的距離;zcam就是使用 tof技術,使用紅外線以及accelerometers加速度計感應器,感測立體空間的相對位置變化,建構灰階距離影像的深度感應器。3dv systems公司研發該技術已經長達10年,並取得許多專利技術,微軟二代kinect使用tof也是情理之內的事。

除此以外,新一代kinect還有許多新特點:彩色攝像頭達到了fullhd(1920 x 1080 @30fps);更大的視角,fov 由 53×47 度變為 70×60 度;在 1 公尺左右距離即可偵測使用者;可以偵測6 位使用者(含骨架)、25 個關節點(關節點與上一代相比多5個,現在在手掌這部分現在有三個關節點,所以可以在一定程度上偵測手的開合狀態);可以根據臉部彩色影像的細微變化偵測心跳。

第二代kinect已經發售,其效能發生了翻天覆地的進化。其中最大的改變是改為採用tof技術,號稱有三倍的精確度。其資料的穩定性相對較好、細節更多;被其他環境光源(紅外線)影響的概率也更低,甚至可以承受一定程度的日光。也由於深度感應改採用tof技術,所以捕捉到的紅外線影像不會像 primesense 的技術有散斑、畫面很乾淨。

獲取kinect感測器

開啟感測器

獲取深度資訊感測器

開啟深度幀讀取器

獲得最近的一幀

將深度資訊轉換為mat格式

用opencv的imshow顯示

**和釋放記憶體

1.獲取kinect感測器 

2.開啟感測器 

3.獲取彩色影象資訊感測器 

4. 開啟彩色影象幀讀取器 

5.獲得最近的一幀 

6. 將彩色影象轉換按三通道儲存為mat格式 

7.用opencv的imshow顯示 

8. **和釋放記憶體

Dubbo 學習記錄One

1.什麼是rpc?遠端服務呼叫。有服務的提供者也有呼叫者,rpc我自己的理解就是分布式。只不過它屬於系統間的呼叫,複雜度較高。我自己常用的有webservice 2.什麼是soa?統一的排程中心,將向外部提供的服務統一的管理起來。說白了就是把所有提供的服務全部集中在一起,然後做統一的排程,外界需要什...

log4j 學習記錄

1.通過log4j可以看到程式執行過程中更詳細的資訊 1 經常使用log4j檢視日誌 2.使用 1 匯入log4j的jar包 2 複製log4j配置檔案到src下 log4j.properties檔案 log4j.rootlogger info,stdout r stdout stdout layo...

kinect 學習筆記一

顏色深度影象的顯示 初始化 繫結流 提取流。1 提取顏色資料 include include windows.h include msr nuiapi.h include cv.h include highgui.h using namespace std int main int argc,cha...