OpenCV配置指南

第一次配置 OpenCV 比較繁瑣,而 OpenCV Library 提供了豐富而詳細的說明文檔,雖然文檔內容多基於 Visual Studio 2010,但是與之後的版本在配置上沒有太大差別,這裏以 Visual Studio 2013 + OpenCV2.4.13 爲環境做配置詳解。

一、下載和解壓 OpenCV

前往 OpenCV 官網,找到RELEASES,選擇合適的版本,其中有 OpenCV2 和 OpenCV3,OpenCV2 相關資料較多,故選擇 OpenCV2。注意:不要選擇帶 * 號的版本,官網上對於 * 的意思沒有做出解釋,而 * 號版本解壓後會有文件欠缺的情況。

這裏選擇了 OpenCV2.4.13,對於 Linux 環境可以選擇 source 再在本地 cmake,而我直接選擇了 windows 版本(win pack)。安裝後雙擊文件,會有一段解壓過程,解壓成功後便能看到 opencv 目錄。這裏有兩點注意事項:
1. 在現在的版本中,解壓不再像以前附帶自動配置環境變量的選項,故解壓成功後須自行配置系統環境變量。
2. 理論上解壓到哪都行,但是官方文檔是以直接解壓到 D 盤作文檔說明的,故建議直接放到分區目錄下,保證第一次配置少出錯。

二、配置環境變量

添加系統環境變量 OPENCV_DIR

文檔直接給出了 CMD 配置環境變量的命令,可根據所用 Visual Studio 版本選擇適合自己的命令。(這就是爲什麼建議解壓到磁盤目錄下,可以直接複製文檔建議的命令使用)

setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc11     (suggested for Visual Studio 2012 - 32 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc11     (suggested for Visual Studio 2012 - 64 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x86\vc12     (suggested for Visual Studio 2013 - 32 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc12     (suggested for Visual Studio 2013 - 64 bit Windows)
setx -m OPENCV_DIR D:\OpenCV\Build\x64\vc14     (suggested for Visual Studio 2015 - 64 bit Windows)

配置 bin 目錄到 PATH 環境變量

如果是自己編譯靜態庫,那麼則不需要執行此步。如果像我一樣直接使用的官方打包解壓,則需要把 OpenCV 的 bin 目錄配置到 PATH 環境變量中,這樣才能讓 OpenCV 鏈接到 bin 目錄下的 DDL 運行。在 PATH 中添加

%OPENCV_DIR%\bin

三、Visual Studio 的配置

  1. 新建測試項目。文件(File) -> 新建(New) -> 項目(Project),選擇Win32控制檯應用程序(Win32 Console Application),這裏我給項目取名“TestOpenCV”,下一步後,注意勾選空項目(Empty project)。
  2. 打開項目屬性管理器視圖(Property Manager)。對於 VS2012 及以前的版本,應該是視圖(View) -> 屬性頁(Property Page)。對於之後的 Visual Studio 版本,應該是視圖(View) -> 其他窗口(Other Windows) -> 屬性管理器(Property Manager)。此時就能在右側看到屬性管理器視圖了。
  3. 重要一步,新建Win32控制檯應用程序,會默認 win32 平臺,對於按64位配置的環境,會導致程序運行出錯。故這裏需要根據個人情況,配置項目的平臺。在屬性管理器視圖,右擊項目“TestOpenCV”(根據你自己的項目名稱),選擇屬性(Property)。在彈出來的窗口中點擊右上角的配置管理器(Configuration Manager),在活動解決方案平臺中選擇自己的平臺,這裏我選擇的是 x64,確定後關閉窗口。
  4. 如果改成 x64 平臺,此時可以在屬性管理器視圖中看到多出來 Debug | x64 和 Release | x64 兩個文件夾,刪去另外兩個 win32 文件夾。
  5. 右鍵 Debug | x64,添加新項目屬性表(new Property Sheet),和文檔一致,給屬性表命名爲 OpenCV_Debug,確定。
  6. 右鍵 OpenCV_Debug,左側選擇 C/C++ -> 常規(General),右側選擇附加包含目錄(Additional Include Directories),添加$(OPENCV_DIR)\..\..\include
  7. 左側選擇鏈接器(Linker) -> 常規(General),右側選擇附加包含目錄(Additional Include Directories),添加$(OPENCV_DIR)\lib
  8. 再選擇鏈接器(Linker) -> 輸入(Input),右側選擇附加依賴項(Additional Dependencies),添加 lib 文件名。以我直接解壓到D盤爲例,lib 文件所在文件夾爲D:\opencv\build\x64\vc12\lib。其中,lib 文件名以 d 結尾的代表 Debug 庫,對應的每一個 Debug 庫都有 Release 庫,即不以 d 結尾的 lib 文件。以我所用的2.4.13版本爲例,所需要添加的 lib 文件名如下:
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib

確定後,再類比5-8步配置好 Release 屬性表即可。

四、測試

文檔中提供了樣例代碼以供參考,新建cpp文件,如introduction_windows_vs.cpp。粘貼如下代碼。

#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main( int argc, char** argv )
{
    if( argc != 2)
    {
     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
     return -1;
    }

    Mat image;
    image = imread(argv[1], IMREAD_COLOR); // Read the file

    if( image.empty() ) // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl ;
        return -1;
    }

    namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.
    imshow( "Display window", image ); // Show our image inside it.

    waitKey(0); // Wait for a keystroke in the window
    return 0;
}

再隨便找張圖片,或者下載官方測試圖片,將圖片文件添加到代碼同一目錄下。再打開項目的屬性頁,選擇調試(Debugging),在右側命令參數(Command Arguements)添加圖片文件名,例如官方測試圖片 opencv-logo.png。再啓動項目,便可以看到帶有 OpenCV Logo 的窗口了。

至此 OpenCV 首次配置成功,後續將繼續 OpenCV 部分核心功能與部分庫文件的使用指南。其中大部分已在官方文檔說明,也可自行前往官網查閱。
`

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章