導航:首頁 > 器材知識 > 如何獲取kinect設備

如何獲取kinect設備

發布時間:2021-02-10 14:48:44

1. 怎樣用輪詢模式獲取kinect骨骼數據

我的Kinect開發平台是:

Win7x86 + VS2010 + Kinect for Windows SDK v1.6 + OpenCV2.3.0

開發環境的搭建見上一文:

http://blog.csdn.net/zouxy09/article/details/8146055

本學習筆記以下面的方式組織:編程前期分析、代碼與注釋和重要代碼解析三部分。

要實現目標:通過微軟的SDK提取骨骼數據並用OpenCV顯示

一、編程前期分析

Kinect產生的深度數據作用有限,要利用Kinect創建真正意義上交互,還需要除了深度數據之外的其他數據。這就是骨骼追蹤技術的初衷,也是Kinect最神奇,最有作為的地方。骨骼追蹤技術通過處理深度數據來建立人體各個關節的坐標,骨骼追蹤能夠確定人體的各個部分,如那部分是手,頭部,以及身體,還能確定他們所在的位置。

1.1、骨架空間

先看看啥叫骨架?應該地球人都知道吧。呵呵。在Kinect裡面,是通過20個關節點來表示一個骨架的,具體由下圖可以看到。當你走進Kinect的視野范圍的時候,Kinect就可以把你的20個關節點的位置找到(當然你得站著),位置通過(x, y, z)坐標來表示。這樣,你在Kinect前面做很多復雜的動作的時候,因為人的動作和這些關節點的位置的變化關系還是很大的,那麼電腦拿到這些數據後,對於理解你做什麼動作就很有幫助了。

玩家的各關節點位置用(x, y, z)坐標表示。與深度圖像空間坐標不同的是,這些坐標單位是米。坐標軸x,y, z是深度感應器實體的空間x, y, z坐標軸。這個坐標系是右手螺旋的,Kinect感應器處於原點上,z坐標軸則與Kinect感應的朝向一致。y軸正半軸向上延伸,x軸正半軸(從Kinect感應器的視角來看)向左延伸,如下圖所示。為了方便討論,我們稱這些坐標的表述為骨架空間(坐標)

2. 如何在Windows端獲取 Kinect中的深度感測器的信息

創建加速度計應用在 Visual Studio 中創建新的 Windows Phone 應用 項目。此模板在「Windows Phone」類別中。
該應用需要引用包含感測器 API 和 XNA Framework 的程序集,因為加速度計數據採用 XNA Framework Vector3 對象的形式傳遞。 從「項目」菜單中,單擊「添加引用」,選擇「Microsoft.Devices.Sensors」和「Microsoft.Xna.Framework」,然後單擊「確定」。
在 MainPage.xaml 文件中,將以下 XAML 代碼放置在名為「ContentPanel」的 Grid 元素中。該代碼創建兩個按鈕,一個用於開始從加速度計獲取數據,一個用於停止從加速度計獲取數據。還創建三個將用於顯示數字讀數的 TextBlock 元素以及三個將用於採用圖形表示讀數數據的 Line 元素。最後,該代碼添加一個狀態 TextBlock 元素,該元素將用於顯示應用的當前狀態。
現在,打開 MainPage.xaml.cs 代碼隱藏頁面並向該頁面頂部的其他 using 指令添加感測器和 XNA Framework 命名空間的 using 指令。
在 MainPage 類定義的頂部聲明一個類型為 Accelerometer 的變數。
在頁面的構造函數中,查看其上運行應用的設備是否支持加速度計感測器。並非所有設備都支持所有感測器,因此使用感測器之前您應該始終進行檢查。用下面的代碼替換現有的頁面構造函數。
為「開始」按鈕添加單擊事件的處理程序。根據上面添加 XAML 代碼的方式,Visual Studio 可能已為您添加此處理程序。如果是這樣,則刪除該處理程序中的任何代碼。如果未自動添加該處理程序,請將下面的空函數復制並粘貼到 MainPage 類定義中。
在「開始」按鈕單擊處理程序中,查看加速度計對象是否為 null,在初始化該對象之前該對象應該為 null。如果加速度計為 null,則使用構造函數初始化該對象。接下來,通過設置 TimeBetweenUpdates 屬性設置您希望從加速度計接收數據的速度。默認值為 2 毫秒。 接下來,為 CurrentValueChanged 事件設置處理程序。將以下代碼粘貼到空的「開始」按鈕單擊處理程序中。
現在,使用 Start() 方法啟動加速度計。調用 Start 有可能會失敗,因此您應該將此調用放置在一個 try 塊中。在 catch 塊中,您可以警告用戶加速度計可能無法啟動。將該代碼粘貼到「開始」按鈕單擊處理程序中,放置在之前的代碼部分之後。
現在,實現 CurrentValueChanged 事件處理程序。具有新加速度計數據的系統會以使用 TimeBetweenUpdates 指定的頻率調用該方法。該處理程序接收包含加速度計數據的 AccelerometerReading 對象。在對 UI 沒有訪問許可權的後台線程上調用該處理程序。因此,該事件處理程序使用 Dispatcher.Invoke 方法,該方法在 UI 線程上調用指定的代碼。Dispatcher.Invoke 用於調用將在下一步中定義的 UpdateUI 並傳遞 AccelerometerReading 對象。
實現將向用戶顯示加速度計數據的 UpdateUI 方法。此方法首先更新狀態 TextBlock 以指示正在接收數據。接下來,更新三個 TextBlock 對象以顯示感測器每個軸上的加速度數值。最後,更新 Line 對象以採用圖形的形式演示加速度。
最後一步是實現將允許用戶停止從加速度計獲取數據的「停止」按鈕單擊處理程序。再次,如果編輯器自動添加了該處理程序,則將此處理程序的內容替換為以下內容。

3. kinect設備 哪些圖形演算法

Kinect深度圖像濾波演算法
由於RGB圖像數據與深度圖像數據的空間坐標系是不同的,前內者的原點是RGB攝像容頭,後者的原點是紅外攝像頭,因此兩者會有相應的誤差。若要修正這些誤差,可以調用Kinect for windows SDK提供的映射函數, MapDepthToColorImagePoint.

4. 如何利用Kinect獲取骨骼節點的三維坐標

標|從kinect里讀數據是一幀一幀的,如果只取一個骨骼的數據,excel表格可以是這專樣:
1
2
3
4
5
幀號|X坐標屬|Y坐標|Z坐標
1...|2.356|3.172|5.265
2...|2.356|3.172|5.265
3...
4...
如果取多個骨骼節點的坐標,excel表格可以是這樣:

幀號|骨骼與坐標
1...|RightHand{X:1.235;Y:3.127;Z:5.265}LeftHand{...}LeftShoulder{...}...
2...|RightHand{X:1.235;Y:3.127;Z:5.265}LeftHand{...}LeftShoulder{...}...
3...
Kinect取骨骼的函數我也建議你自己網上找,核心邏輯寫在SkeletonFrameReady函數里。
Excel寫入程序也可以在網上找到。

5. kinect怎樣自動獲取玩家和設備的距離

short類型。16位。低3位是playindex。高13位是depthindex。調用方法直接int depth=depthImagePixel.depth就OK了

6. 如何從KINECT中獲取點雲

用OPENNI 獲得深度圖 然後 有一個函數轉換成世界坐標系下的真實坐標 也就是回點雲數據 然後可以存答成.PCD格式的文件 或者直接用例子進行處理。 不知道有沒有別的方法 這只是我的想法。 僅供參考

7. 如何提取由kinect獲得的圖像數據(深度+彩色)

在用opencv ?
是有例子程序的嘛。

8. 請問,xbox360的kinect體感設備需要破解嗎

對機器沒有復要求的,通常情況制下刷了就能玩了
不過KINECT對家裡的環境是有要求的,就是KINECT到你人找之間的1.8米的環境內不能有異物,否則不行,我是為此大掃除的。
反正KINECT本身是沒有系統的,所以要破解的是機器,和其他硬體無關,機器刷過的就可以用的

9. kinect 體感外設怎樣實現功能的

xbox的?貌似是利用設備上的攝像頭、紅外、距離什麼的。

10. 如何在matlab中實用kinect獲取數據

雖然都是將數轉成字元串,但大有區別的,兩個的作用根本就不一樣:
num2str是將數轉成文字,舉例子 num2str(43)得到的將是'43',有兩個字元
char是按照ascii碼表將數字映射成字元,char(43)得到的將是『+』,(加號的ascii碼就是43)

Num2str函數是一個相當有用的函數,一般配合[]連接符使用
1 用於求導數的表達式,函數X^2 – y^p + y^t,pt為數值,可以跟隨程序的不同被賦予不同的值。 Diff([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x])

2 用於求解積分用法同上,把被積函數表示出來就可以了。 int([『x^2 – y^』 num2str(p) 『+y^』 num2str(t), x, a,b])

3 用於求解方程或微分方程 Solve([『x^2 – x^』 num2str(p) 『+x^』 num2str(t)],x) Dsolve([『Dx^2 – x^』 num2str(p) 『+x^』 num2str(t)], x)

4 如果你要運行一些大的演算法,涉及到了循環,你不防試試下面的方法,提示程序的進度。這個是我在做Monte Carlo時的一個收獲。 Plot(...)任意的繪圖, Text(x, y , ['Monte Carlo Number=' num2str(mc) '/' num2str(NMc)])將這個語句寫在循環體的內部。

5 在保存圖像的時候用到動態的給文件起名的時候,也可以用這個語句。文件名[『file』 num2str(i) 『.bmp』]i為循環計數名。

MATLAB char
使用方法
S = char(X)
把表示字元的非負整數數組X轉化為字元串數組S,實際的字元顯示和給定的字元編碼有關。X的范圍為從0到65535,任何在此范圍外的數據都沒有定義。使用double函數把字元串轉化為對應整數。
S = char(C)
如C是一個元胞字元數組,C中的每個元素放置在字元數組s中的行中。用cellstr函數可以轉化回來。
S = char(t1, t2, t3, ...)
生成字元型數組S把t1,t2,t3,...作為行,為了生成有效的矩陣自動在每個字元型數組加倍添加空格。每個字元參數,ti,本身是字元型數組。這允許任意大的字元數組的創建。空字元串是重要的。

閱讀全文

與如何獲取kinect設備相關的資料

熱點內容
手機黑屏了怎麼解設備鎖 瀏覽:407
化學實驗滴定裝置圖 瀏覽:867
一共有多少種顏色的悠悠球軸承 瀏覽:350
注冊設備工程師考哪些內容 瀏覽:536
韓國免費看的推理片 瀏覽:100
2010指南者儀表怎麼拆下來 瀏覽:550
下雨自動關窗戶裝置 瀏覽:724
線切割的軸承怎麼裝 瀏覽:490
拉彈珠子的設備叫什麼 瀏覽:735
懷孕檢檢查超聲波心動查什麼 瀏覽:716
上海邦力電動工具充電器 瀏覽:364
數控機床254是什麼意思 瀏覽:805
五金製品執行標准代碼 瀏覽:282
閥門上漏水怎麼辦 瀏覽:797
手臂肌肉怎麼練沒健身器材 瀏覽:281
食品輸送設備哪裡有 瀏覽:734
汽車裝置都有什麼作用是什麼原因 瀏覽:221
熱軋設備大概多少錢 瀏覽:97
類似法國愛戀的電影 瀏覽:733
超聲波晶片怎麼換 瀏覽:283