【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置
近年來隨著人工智能和機器視覺的日益火爆,OpenCV作為機器視覺領域內的利器也得到了長足和快速的發展。作為OpenCV的忠實粉絲,一直使用的是OpenCV2的版本,但是OpenCV3相對于OpenCV2提供了不少新的特性,在加速等性能上作了很多優化,并且經過了Alpha、Beta、3.1.0幾個版本后,至今已經更新到了3.2.0版本,穩定性上也已經做得很好,所以,從今年開始,決定在以后的開發中使用OpenCV3的版本。
但是,官網(opencv.org)目前提供的安裝包只提供了vs2015(vc14)的編譯版本。所以,若想在其他編譯環境(如vs2010、vs2012、vs2013等)下使用,需要下載opencv3.2.0的源碼,在cmake下自行編譯。
先說明一下,我是在64位WIN7+VS2013環境下使用CMake3.7.2進行編譯的,在其他Windows版本、其他VS版本、其他OpenCV版本和其他CMake版本下的編譯過程都是類似的。
具體的編譯和配置步驟如下:
1、在官網(opencv.org)下載OpenCV3.2.0源碼(Sources)。
2、將源碼壓縮包解壓到編譯目錄下,并在同一目錄下新建build_64和msvc_2013兩個文件夾,前者作為Cmake編譯目錄,后者作為編譯后的安裝目錄。
3、打開CMake,開啟編譯選項的配置。設置好source code目錄和build目錄,點擊Configure按鈕,選擇VS版本,這里選擇的是win64 VS2013,選擇本地編譯器作為默認編譯器,點finish,即開始配置過程。(配置過程需要一段時間,可以先干點其他的,等待初步配置完成,注意保證網絡的暢通,Cmake的過程中需要下載第三方庫)。
4、初步配置完成,如下圖所示。需要修改一下相關選項,這里只需要修改兩個地方,其他默認即可,一是將CMAKE_INSTALL_PREFIX修改成之前創建的msvc2013_64目錄,二是點擊add Entry按鈕,添加CMAKE_DEBUG_POSTFIX選項,值設為“d”,用于區分debug和release版本,否則編譯安裝時debug版本會被release版本覆蓋。設置好后,再點擊configure,配置完成后點擊“generate”生成編譯工程。
5、VS2013下編譯與安裝。經過上一步后,我們在build_64目錄下即可看到CMake生成的編譯工程,如下圖所示。
打開opencv.sln,解析完成后,先在Debug下對工程進行編譯(BUILD->Build Solution),編譯完成后,將INSTALL設置為啟動工程(在INSTALL右鍵->Set as startup project),然后進行安裝(BUILD->Project Only->Build Only Install);再在Release下進行編譯和安裝(和Debug類似)。
6、添加環境變量。安裝完成后,我們在vs2013_64目錄下即可看到一個include文件夾和x64文件夾,我們在x64目錄下逐級找到bin文件夾,將bin的路徑添加到系統的環境變量里,如下圖所示。
7、創建vs工程屬性配置文件。為了方便避免opencv屬性配置時的各種麻煩,這里采用創建屬性配置文件的方式,將如下文件保存到一個.props類型的文件中(如opencv3.2.0.props),放置到一個方便的位置,使用到opencv時,只需要將其添加到工程屬性單下即可(在Property Manager窗口中在工程上右鍵->Add Existing Property Sheet,找到opencv3.2.0添加即可)。注意:額外依賴項(AdditionalDependencies)是添加編譯安裝目錄里lib文件夾下所有的Debug庫和Release庫,要保證輸入的文件名正確,否則編譯會報錯。
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><ImportGroup Label="PropertySheets" /><PropertyGroup Label="UserMacros" /><PropertyGroup><IncludePath>D:\Libraries\OpenCV3.2.0\msvc2013_64\include;$(IncludePath)</IncludePath><LibraryPath Condition="'$(Platform)'=='X64'">D:\Libraries\OpenCV3.2.0\msvc2013_64\x64\vc12\lib;$(LibraryPath)</LibraryPath></PropertyGroup><ItemDefinitionGroup><Link Condition="'$(Configuration)'=='Debug'"><AdditionalDependencies>opencv_calib3d320d.lib;opencv_core320d.lib;opencv_features2d320d.lib;opencv_flann320d.lib;opencv_highgui320d.lib;opencv_imgcodecs320d.lib;opencv_imgproc320d.lib;opencv_ml320d.lib;opencv_objdetect320d.lib;opencv_photo320d.lib;opencv_shape320d.lib;opencv_stitching320d.lib;opencv_superres320d.lib;opencv_video320d.lib;opencv_videoio320d.lib;opencv_videostab320d.lib;opencv_viz320d.lib;%(AdditionalDependencies)</AdditionalDependencies></Link><Link Condition="'$(Configuration)'=='Release'"><AdditionalDependencies>opencv_calib3d320.lib;opencv_core320.lib;opencv_features2d320.lib;opencv_flann320.lib;opencv_highgui320.lib;opencv_imgcodecs320.lib;opencv_imgproc320.lib;opencv_ml320.lib;opencv_objdetect320.lib;opencv_photo320.lib;opencv_shape320.lib;opencv_stitching320.lib;opencv_superres320.lib;opencv_video320.lib;opencv_videoio320.lib;opencv_videostab320.lib;opencv_viz320.lib;%(AdditionalDependencies)</AdditionalDependencies></Link></ItemDefinitionGroup><ItemGroup /> </Project>
自此,大功告成!可以拿OpenCV3中圖片的讀取和保存進行測試。
2017.03.30
總結
以上是生活随笔為你收集整理的【OpenCV3】OpenCV3.2.0在VS2013环境下Cmake编译与快速配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV3】平滑处理详解
- 下一篇: 【OpenCV3】视频读写——cv::V