首先我們先來看一下三維重建的效果圖:
這裏特別感謝博主shiter的原創文章:OpenCV+OpenGL 雙目立體視覺三維重建
本博文參考了該博主的的核心代碼,並針對該博主博文中聲明的一些BUG進行了修正:
本文代碼下載地址(已修正相關問題問題):https://download.csdn.net/download/qq_15029743/10784389
本文主要從如何配置環境方面進行介紹,後期會更新基於攝像頭實際抓圖的三維重建
相機抓取的相片原圖:
首先是本文的運行環境:Window 7 x64+OpenCV 2.4.10+VS 2013+OpenGL(GLUT)
首先你需要自行配置好OpenCV環境,這裏就不再贅述了
OpenCV配置方法詳細可以參考博主的博文:Open_cv 2.49+Windows 7(×64)+VS2013安裝教程
不同之處在於我們採用的是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; //稠密
其中稠密匹配方式速度快,但是通用性及重建效果不如基於特徵點的匹配(尤其是深度變化較複雜的圖片)