雙目三維重建—基於特徵點匹配的被動式三維重建(OpenCV+OpenGL)
首先我們先來看一下三維重建的效果圖:
本博文參考了該博主的的核心程式碼,並針對該博主博文中宣告的一些BUG進行了修正:
本文主要從如何配置環境方面進行介紹,後期會更新基於攝像頭實際抓圖的三維重建
相機抓取的相片原圖:
首先是本文的執行環境:Window 7 x64+OpenCV 2.4.10+VS 2013+OpenGL(GLUT)
首先你需要自行配置好OpenCV環境,這裡就不再贅述了
不同之處在於我們採用的是2.4.10的OpenCV,匯入附加依賴項如下(注意,OpenCV2.49也同樣可以,只是需要將所有涉及到OpenCV 249的改成2410):
opencv_calib3d2410.lib opencv_contrib2410.lib opencv_core2410.lib opencv_features2d2410.lib opencv_flann2410.lib opencv_gpu2410.lib opencv_highgui2410.lib opencv_imgproc2410.lib opencv_legacy2410.lib opencv_ml2410.lib opencv_nonfree2410.lib opencv_objdetect2410.lib opencv_photo2410.lib opencv_stitching2410.lib opencv_ts2410.lib opencv_video2410.lib opencv_videostab2410.lib
如果你的計算機配置完成OpenCV後出現如下提示:
請在系統變數下新增path路徑,並重啟後即可生效:
如果提示缺少xxxx.LIB檔案 ,大概率是opencv路徑配置錯誤,請仔細檢查路徑並重新配置即可。
到這裡就完成了OpenCV的基本配置,接下來進行OpenGl的配置,這裡我們選擇的是入門級的GLUT庫,這裡我們進行詳細的介紹,首先我們要下載GLUT庫:GLUT庫(注:原始碼包中已包含該檔案,無需重複下載)
解壓庫檔案後,我們發現一共有五個檔案,分別是:
- glut.dll 動態連結庫
- glut.h 標頭檔案
- glut.lib 庫檔案
- glut32.dll 動態連結庫
- glut32.lib 庫檔案
Step1:我們把glut.h檔案放到VS安裝目錄下的GL資料夾中,以博主的預設安裝路徑,應該放到:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\GL
注:如果沒有GL資料夾請新建一個
Step2:將得到的glut.lib和glut32.lib複製到vs2013的lib資料夾下:vs2013\VC\lib,以博主的預設安裝路徑,應該放到:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
Step3:將glut.dll,glut32.dll複製到到作業系統目錄下面的C:\Windows\SysWOW64或C:\Windows\system32資料夾內,以博主的預設安裝路徑,應該放到:
C:\Windows\SysWOW64
好了,到這裡所有的配置就完成了,點選VS執行即可實現基本功能了:
這裡,程式中提供了兩種重建方法,一種是基於特徵點的,一種是基於稠密的,可以在程式中進行修改
、
將下面的語句修改成對應模式即可切換演算法:
Algorithm g_algo = FEATURE_PT; //基於特徵點
Algorithm g_algo = DENSE; //稠密
其中稠密匹配方式速度快,但是通用性及重建效果不如基於特徵點的匹配(尤其是深度變化較複雜的圖片)