##VS2013中運行支持OpenGL的OpenCV工程
之前一直用Qt+OpenCV開發項目,而在VS中直接偷懶使用預編譯的OpenCV進行開發,結果在使用OpenGL時提示”No OpenGL support”:

上網查了一下,原因很明顯,是因為預編譯好的library不支持OpenGL,因此需要使用cmake重新build工程。我的開發環境是:Win 8.1+VS2013+OpenCV 2.4.9。
> 從OpenCV2.4.2版本開始,OpenCV在可視化窗口中支持OpenGL,在highgui的模塊中可找到接口。這使得OpenCV可以輕松渲染任何3D內容。但是OpenCV默認不啟用OpenGL支持,因此需設置標志ENABLE_OPENGL=?
> YES,(默認ENABLE_OPENGL = NO)。
在本次配置成功后,將演示在OpenCV的顯示輸出中嵌入OpenGL的3D物體。整個流程如下:
**一、生成OpenCV解決方案**
安裝CMake并打開,在第一行“Where is the source code”后面的那個“Browse Source…”按鈕,選擇OpenCV的安裝路徑。我的Opencv2.0安裝路徑為E:/opencv/opencv/,這里需要選擇source文件夾;點擊第二行的“Browse Build…”按鈕并選擇生成的解決方案的路徑。這里放置在E:/opencv/OpencvBuild文件夾中,設定完成后點擊左下方的configure。

在彈出的對話框中選擇編譯器版本Visual Studio 12(即Visual Studio 2013),點擊Finish。

在下面的編譯參數設置中找到WITH_OPENGL,打上勾,再次點擊Configure。

再次點擊Configure,完成后點擊Generate,關閉CMake。至此編譯前的配置工作全部完成。

**二、在VS中編譯OpenCV**
用VS2013打開E:\opencv\OpencvBuild下的OpenCV.sln。在編譯之前,確認解決方案平臺為Debug|Win 32。右鍵點擊項目ALL_BUILD,選擇生成;完成之后找到CMakeTargets->INSTALL,再次選擇生成。

等待生成完畢。若第一次選擇的解決方案平臺選擇的是Debug 32位,則將解決方案配置改為Release,然后等待再次依次生成ALL_BUILD和INSTALL,至此OpenCV的編譯工作完成。
(這里可能會出現編譯的錯誤。根據網上的介紹,OpenGL在VS中是支持的,不需要安裝,但若出現編譯不通過的情況,可嘗試在所有使用`<gl\gl.h>`頭文件的地方前都添加`#include <windows.h>`)
**三、在VS中配置OpenCV**
這里用VS屬性表的方式配置OpenCV工程,每次只需要添加屬性表即可完成配置,比手工界面配置方便很多。 屬性管理器 -> 右鍵 “test”(工程名) -> 添加現有屬性。

修改項目屬性表的名字后點擊“添加”,即可在屬性管理器中見到我們新建的屬性表(這里取名為opencv)。

右鍵點擊我們剛建立的屬性表并點擊“屬性”,在彈出的窗口中點擊“VC++目錄”,點擊右側的“包含目錄”,添加:E:\opencv\OpencvBuild\install\include
同樣地,在“庫目錄”添加:E:\opencv\OpencvBuild\lib\Debug

點開“鏈接器”->輸入->附加依賴項,按照需要添加相應的庫文件:

用同樣的方式,向“Release | Win32”屬性中添加屬性表,并對屬性表進行以下配置:
在“包含目錄”添加:E:\opencv\OpencvBuild\install\include
在“庫目錄”添加:E:\opencv\OpencvBuild\lib\Release
向“附加依賴項”添加:E:\opencv\OpencvBuild\install\include\Release下的庫文件。
在VS完成以上配置后,剩下的最后一步是添加系統變量Path:E:\opencv\OpencvBuild\install\x86\vc12\bin;
**四、簡單的演示**
至此所有關于OpenCV和OpenGL的配置均已完成,接下來就是試驗以下用OpenCV建立OpenGL窗口,這里打開一個現實增強的工程,在屬性管理器中Debug|Win32處右擊,選擇“添加現有屬性表”,選擇之前生成的opencv屬性表(把屬性表文件事先放到該工程文件夾中):

編譯現實增強項目并生成可執行文件后,輸入圖像即可得到OpenGL渲染的3D繪圖。


- 前言
- Win8.1下OpenCV2.4.9+Qt5.3.2開發環境搭建
- OpenCV2學習筆記(一)
- OpenCV2學習筆記(二)
- OpenCV2學習筆記(三)
- OpenCV2學習筆記(四)
- OpenCV2學習筆記(五)
- OpenCV2學習筆記(六)
- OpenCV2學習筆記(七)
- OpenCV2學習筆記(八)
- OpenCV2學習筆記(九)
- OpenCV2學習筆記(十)
- OpenCV2學習筆記(十一)
- OpenCV2學習筆記(十二)
- OpenCV2學習筆記(十三)
- OpenCV2學習筆記(十四)
- OpenCV2學習筆記(十五)
- OpenCV2學習筆記(十六)
- OpenCV2學習筆記(十七)
- OpenCV2學習筆記(十八)
- OpenCV2學習筆記(十九)
- OpenCV2學習筆記(二十)
- OpenCV2學習筆記(二十一)
- OpenCV2學習筆記(二十二)