作為1個研究生狗,最近應老板的要求在學習關于Kinect方面的知識。
其中遇到1個問題就是:學校購入的Kinect是Kinect 2代,而且我所學習的框架必須依賴OpenNI庫,但是Kinect2和OpenNI2在查閱各種資料下,似乎是不兼容的。如圖:
為了解決這個問題,花費了我好久的時間。不過還好,終究在某外網的問答下找到了答案。
首先,我先報下我的環境:
操作系統:win8.1(Kinect 2需要搭配 kinect for windows SDK 2.0,而SDK2.0需要win8及其以上系統。)
裝備:Kinect Xbox One
軟件:Kinect for windows SDK 2.0
OpenNI 2.2
Kinect 2的安裝:
(雖然我的系統是64位,可我覺得32位更方便,以下所有軟件我都是使用的32位版本。)
1、下載并安裝Kinect for windows 2.0(記住,此時Kinect不能連接電腦)。由于是微軟的比較霸道,不能更改安裝路徑。如果有想知道路徑的朋友,其路徑是C:\Program Files\Microsoft SDKs\Kinect
網上有很多關于Kinect的安裝教程,相信很多同學都看見過SDK1.x+OpenNI+NITE的安裝教程。那是在SDK 2.0之前,如果在windows系統上開發Kinect需要借助OpenNI和NITE。SDK2.0發布后,其實1般簡單的程序都有包括。目前Kinect 2代大致有兩種選擇:1、使用SDK;2、使用SDK+OpenNI2。二者有各自的好,1個是開源,1個比較便利。這就需要自己去選擇啦。
2、連接Kinect(記住1定要用usb3.0接口)。以后電腦會自動安裝Kinect所需的驅動。
此時打開Kinect studio,點擊connected
可以測試電腦是不是可以連接Kinect
如果你是只安裝SDK,到此就安裝成功了,SDK中有很多例子(點擊SDK Browser),可以多看看,使用也很方便。
3、下載并安裝OpenNI2。這里就不詳細講授了,設置好安裝路徑再1路next就能夠了。
安裝完,點擊NiViewer測試是不是成功。
成功!
OpenNI2遇到no devices found問題:
如開篇所說,查閱了很多資料都是Kinect 2 與 OpenNI2 不兼容,所以OpenNI辨認不了Kinect 2裝備。不過,誤打誤撞的我找到了解決方法:
1、下載OpenNI2-Kinect2Driver。點擊Download ZIP,下載到1個你想要的路徑,并解壓。
2、用vs2013運行OpenNI.sln。(關于vs的選擇,它雖然是vs2010編譯的,但是要求vs2012及其以上運行。我用vs2012運行會報錯并且需要改平臺工具集,所以試過以后我建議大家用vs2013。)
3、打開以后,大家會發現它默許的活動解決方案平臺是x64,其實不是win32,鑒于上面我們都是用的32位的軟件,所以改成win32(x86)。如果你需要的是64位不需要改平臺,以下也會順帶講授。
然后點擊生成OpenNI,成功。
右擊Kinect2,點擊屬性->配置屬性->vc++目錄:
配置包括目錄:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\inc
配置庫目錄:C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x86(32位)
C:\Program Files\Microsoft SDKs\Kinect\v2.0_1409\Lib\x64(64位)
再點擊鏈接器->輸入
配置附加依賴項:Kinect20.lib和XnLib.lib
配置好屬性后,點擊生成Kinect2
如果你的活動解決方案平臺是win32:
在:你選擇解壓的路徑\OpenNI2-kinect2\Bin\Win32-Debug\OpenNI2\Drivers中可以找到Kinect2.dll,Kinect.lib等
如果你的活動解決方案平臺是x64:
將得到的文件復制到:
OpenNI2安裝目錄\OpenNI2\Tools\OpenNI2\Drivers下
運行NiViewer,成功~!
注:1.選擇你32位OpenNI2要對應選擇win32平臺,64位的OpenNI2要選擇對應的x64平臺。
2.使用OpenNI時,記得要把OpenNI2\Redist中的所有內容復制到項目中。
困擾我很久的問題~通過自己的努力解決了~希望大家多多支持~科科~
下一篇 應聘時漂亮的回答