Kinect for Windows SDK 官方中文開發教學影片
2011/08/25 54 則迴響
官方的網頁是《Kinect for Windows 開發》。在這邊,微軟除了提供一份簡單的投影片(link)和範例程式外,主要是提供了所謂的「Kinect for Windows 開發 – 邊做邊學」這系列的中文教學影片,讓大家可以直接看講師的說明影片(台灣微軟的資深講師「曹祖聖」)、來學怎麼開發 Kinect 的程式了!
不過,由於是微軟官方的,所以和 Heresy 自己採用的 C++ 搭配 OpenNI 方案不同,他是使用 Visual C# 加上微軟官方的 Kinect for Windows SDK(參考《微軟版 Kinect SDK Beta 版推出!》),來進行開發了~而如果是想學習怎麼用微軟官方的 SDK 來開發 Kinect 的程式的話,應該是可以參考這系列的影片了~
這一系列影片總共有九段,分別是:
-
Kinect SDK 介紹與開發環境安裝
-
Kinect 初始化與彩色影像擷取
-
Kinect 深度影像擷取與深度計算
-
透過深度資料辨認玩家位置
-
玩家任意背景替換應用
-
骨架追蹤與螢幕座標轉換
-
繪製人體骨架與多人骨架追蹤
-
骨架追蹤範例 – 操控光劍與地球
-
Kinect 聲音錄製
基本上,教學的內容應該算是相當完整了!而且再加上又是中文的,對於要使用 Kinect for Windows SDK 的人來說,應該是相當值得參考的了~
不好意思Heresy
我想做關於這方面的開方 是個剛接觸的新手
想問說sdk 跟 openni有何不同??
在網路上看到他們安裝kinect的方式都不同!
有什麼分別嗎?
基本上,這兩者都是使用 Kinect 這類深度感應器的 PC 開發套件,但是是由不同廠商推出、支援的功能也不盡相同。
Kinect for Windows SDK 是微軟出的,只針對自家的 Kinect。
而 OpenNI 則是由 PrimeSense 主導的開放平台,除了可以使用 Kinect 外,也可以使用 ASUS 的 Xtion Pro 系列感應器。
Heresy你好:
想請問你一個問題,在第五部影片"玩家任意背景替換應用",是用WPF檔案來撰寫的並執行,那能不能改成用Windows Form來達成同樣的效果?
理論上是可以的。因為基本上,Kinect SDK 也可以取出影像的原始資料來用,要把這些資料套用到其他影像相關的函式庫,基本上問題都不大。
Heresy感謝你^^*
再請問你一個問題,在WPF中,載入圖片的程式碼(如下),要怎麼改成Windows Form能執行的,因為我用在Windows Form裡,"Bitmap bmp = new Bitmap(bg_path);"這行,顯示出"類型’System.ArgumentException’的未處裡例外狀況發生於System.Drawing.dll",可是我很明確我有加入參考System.Drawing.dll,是不是要用其他的或是程式碼必須另外再改?
// 載入背景圖
string bg_path =
System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) +
@"\..\..\background.bmp";
Bitmap bmp = new Bitmap(bg_path);
ImageConverter ic = new ImageConverter();
byte[] buffer = (byte[])ic.ConvertTo(bmp, typeof(byte[]));
for (int i = 0; i < backgroundImage.Length; i++)
backgroundImage[i] = buffer[i + 54]; // BMP 檔前 54 bytes 是標頭
抱歉,Heresy 並沒有真正在使用 Windows Form 或 WPF,所以這種實作上的問題,可能沒辦法幫你解答。
不過,你這邊的程式應該是在執行階段出錯,而非在編譯階段出問題吧?
如果是這樣的話,那和有沒有加入 System.Drawing 沒關係,而是在開啟圖檔的時候有問題。
謝謝Heresy^^*
Heresy 再請教你一個問題,我最近也開始摸索openni,想運用openni寫出背景插入,那請問在這openni下能做出這個效果嗎?
有的話他的概念是不是與sdk差不多,還是完全不同??(不好意思,我是新手,很多不懂的地方)
OpenNI 和 Kinect for Windows SDK 基本上都只是用來讀取硬體的資料、進行分析的。
你如果是要做讀取額外的背景圖片的動作,基本上和前兩者都沒有關係,而是要看你是用哪種圖形介面函式庫。
像你之前在研究的是 Windows Form,如果你把 OpenNI 的程式也搭配 Windows Form 來使用,那基本上這部分的程式也不用改。
而像 Heresy 是用 Qt 當圖形介面,所以就要用 Qt 的寫法。
http://kheresy.wordpress.com/2011/09/20/usergenerator_in_opneni/
另外,SDK 是 Software Development Kit 的縮寫,不建議用它來代表 Kinect for Windows SDK。