InfiniTAM在Windows10的配置

cmake

cmake

image_1cs8jshp9oon56lj691ugooet9.png-302kB
image_1cs8jshp9oon56lj691ugooet9.png-302kB

直接下載exe文件安裝;

opengl

OpenGL只是一個標準,它的實現一般自帶在操作系統里,只要確保顯卡驅動足夠新就可以使用。如果需要在程序里直接使用OpenGL,會有很多非常惡心的預備工作要做,而且可能還要專門為平臺的差異寫一些代碼。要跳過這些工作,可以用一個utility庫,直接使用它提供的函數,就不用操心那些細節了。這樣的庫新一點的有GLEW,因為開源所以安裝相對方便(大不了丟進去一起編譯),但各種教程和書里常見的是閉源的GLUT。由于GLUT的作者已經很久沒更新過了(最后更新于2000年!= =),所以其他人另外做了一個接口兼容GLUT的freeglut,開源而且一直在維護中。
在 Windows 下可以安裝 GLUT 或者 freeglut 其中的一個,不過建議安裝后者。在 Ubuntu 下安裝 freeglut即可。

freeglut

1. 先介紹一種方法,使用MinGM

在Windows/Ubuntu下安裝OpenGL環境GLUT/freeglut

  • 下載MinGW,請自行解決,這里不再贅述;
  • 點擊下載freeglut3.0.0 for MinGW

注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因為system32中的動態鏈接庫其實是原生64位版本的。而為了兼顧兼容性,才有了sysWoW64,這個目錄中存放的反而是32位的鏈接庫。

```
C:\Windows\SysWOW64
└─ freeglut.dll(32位的mingw就用bin目錄下那個,不是bin/x64那個)
D:\mingw
    ├─ include
    │   └─ GL
    │      ├─ freeglut.h
    │      ├─ freeglut_ext.h
    │      ├─ freeglut_std.h
    │      └─ glut.h (注意這個和老版的glut.h不同)
    └─ lib
        ├─ libfreeglut.a (這兩個同樣用lib目錄下的兩個)
        └─ libfreeglut_static.a
```

2. 如果上面的不可以,使用VS

沒關系,windows就是這么坑,本人混跡Mac,Ubuntu各種操作系統未曾見過如此坑的(對開發者不友好),各種版本問題;吐槽結束,我們用微軟的軟件搞一下;

Freeglut在windows 7 64bit + visual studios 2010下的安裝與配置
用 Visual C++ 2015 編譯 FreeGLUT

  • 下載freeglut(本人是2.8.1版本)
    用Visual Studio 2013打開freeglut.sln文件,注意不要使用太高版本的VS,否則編譯不成功,接下來編譯就好了;


    image_1csalgl8h1api171ckg01bb4dfl9.png-72.8kB
    image_1csalgl8h1api171ckg01bb4dfl9.png-72.8kB
  • 幾個重要的步驟就是復制dll和lib

    1. 然后進入“freeglut-2.8.1\lib”。分別復制x64和win32下的freeglut.dll文件到“C:\windows\system32”和“C:\windows\sysWoW64”下。
      強行安行第二次注意,這里一定要搞清楚;

      注意!在64位版本的windows 7 下,win32版的freeglut.dll要放入sysWoW64,而x64版本的要放入system32。因為system32中的動態鏈接庫其實是原生64位版本的。而為了兼顧兼容性,才有了sysWoW64,這個目錄中存放的反而是32位的鏈接庫。
      2. 接著分別將x64和win32目錄下的兩個freeglut.lib放入“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64”和“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib”。這里就是正常對應的。
      3. 最后將“\freeglut-2.8.1\include”下的“GL”目錄復制到“D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include”即可。
      4. 測試工程,網上找個glut的代碼自己編一下吧!

這就成功了!
這就成功了!

InfiniTAM

重點來啦,前提是上面的你必須解決,否則你也將有更多的坑要踩,排除好嘛,排除法!!!

搞定驅動

既然要用到深度相機,首先要搞定硬件的驅動程序,把深度相機的Demo跑起來就算是成功了!

我這里用到的是Kinect V1設備,于是上網找kinect for sdk驅動程序,注意一下版本,具體只能試了;查了一下貌似Kinect SDK2對硬件有要求,覺得還是用v1的驅動(遠離高版本),網上給出了兩個下載,一個是v1.8的驅動Kinect for Windows SDK v1.8和一個開發者工具包toolkitKinect for Windows Developer Toolkit,下載下來安裝。

image_1csan745clgk1r9k10jk1oqj8g2j.png-35.3kB
image_1csan745clgk1r9k10jk1oqj8g2j.png-35.3kB

接下來打開openni的示例程序,NiViewer,出來深度圖你就搞定了!??!哈哈哈,圖像分左右,左邊是深度圖,右邊是本人;
一個小秘籍:測試demo跑不出來,大概率是驅動出了問題,查版本去吧?。。。ㄊ遣皇潜┞读藈in的版本兼容很成問題,微軟自己的軟件啊這可是)

image_1csan9pu1jqu1653s7ko1dbi50.png-181.3kB
image_1csan9pu1jqu1653s7ko1dbi50.png-181.3kB

搞定工程

接下來就是用cmake打開你的InfiniTAM工程,并生成build路徑,如圖;

image_1csb48hqc1tka1kt2aaest1l3h5t.png-83.9kB
image_1csb48hqc1tka1kt2aaest1l3h5t.png-83.9kB

error MSB3073: The command setlocal問題

打開后build,出現error MSB3073: The command setlocal這個問題,貌似很棘手,下午4點,開始研究中,先搞杯咖啡去。。。
上面的這個問題卡了大哥一下午,現在已經是晚上七點,哥還在搞這個問題,現在正在下vs2010,準備編譯一下freeglut2.8.0版本,之前用的是2.8.1,因為看到工程項目里說是用2.8.0或者3.0.0,之前用3.0.0沒有成功,這個版本問題真的是坑;

接下來出現了三種解決方法:

  1. 如果編譯出現這個錯誤估計是版本不太不同造成的,雙擊錯誤來到錯誤的地方,刪除讓你錯誤的那行,編譯沒必要搞那么復雜,編譯通過,但是生成的程序仍然不能運行;
  2. 默認的 CMAKE_INSTALL_PREFIX 是 C 盤,沒有權限。修改 CMAKE_INSTALL_PREFIX到非當前文件夾即可。修改這個路徑是不起任何作用的;
  3. 解決辦法:(install)項目–>屬性–>生成事件–>后期生成事件–>在生成中使用–>否,這個修改了之后也是同第一種,減少了一個cmake命令;

總之以上雖然解決了編譯的問題,但是TAM程序還是未能啟動,現在是第二天上午10點,這個問題還在這里卡著。。。

運行過程出現cannot find or open the PDB file

這個是調試器的問題,直接按ctrl + F5解決,很恐慌,以為又要遇到什么大坑。

還是找不到驅動的問題

image_1csd5di1a155s1ddmhsdvkj1rq69a.png-332.5kB
image_1csd5di1a155s1ddmhsdvkj1rq69a.png-332.5kB

從驅動下手,然而我跑kinect的測試程序NiViewer是成功的啊,我想可能是這個程序的驅動要求不匹配造成的;

使用Visual Studio編譯中的問題

  1. include移到系統庫
    C:\Program Files(x86)\Windows Kits\10\Lib

  2. 添加Visual Studio工具并支持Visual C++ 64位編譯器

  3. 解決打開以前版本工程不兼容問題,打開vs, 點擊工具->擴展和更新,在彈出的對話框左側單機聯機,在右側輸入installer關鍵詞,內容截屏如下,下載Microsoft Visual Studio 2015 Installer Projects;

  4. 提示找不到OpenNI2.dll,如下圖所示,


    image_1cs8to8mhs2gptu19k9pulju5m.png-13.9kB
    image_1cs8to8mhs2gptu19k9pulju5m.png-13.9kB

    在OpenNI2安裝目錄bin中找到該文件復制到提示的路徑下;

  5. 不是有效的win32應用程序怎么解決,這可能是你的.dll真的不符合它們的要求,從dll文件下手吧;


    image_1cs8u2h8q6dk10m1gje1gps193r2j.png-50.1kB
    image_1cs8u2h8q6dk10m1gje1gps193r2j.png-50.1kB
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,527評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,687評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,640評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,957評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,682評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,011評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,009評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,183評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,714評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,435評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,665評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,148評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,838評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,251評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,588評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,379評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,627評論 2 380

推薦閱讀更多精彩內容