OpenCV學習筆記(一)安裝及運行第一個OpenCV程序

一、下載及安裝

 OpenCV是一套開源免費的圖形庫,主要有C/C++語言編寫,官網: http://opencv.org/ 。在 http://opencv.org/downloads.html 能夠找到個版本和各類平臺的程序包。OpenCV的Windows平臺安裝包是放在SourceForge.net網站。php

我下了2.4.4版,大概217M。安裝包其實就是一個壓縮包,安裝過程就是解壓到某個文件夾。我是安裝到 E:\Soft\opencv 目錄,安裝後文件夾以下:html

咱們只須要關注「build」文件夾便可,其餘的能夠不用管。「build」文件夾編譯後的文件,咱們能夠直接使用。打開「build」文件夾,以下ios

編寫過C++程序的都知道,要使用別人的編寫好的DLL,那麼須要三種文件,即頭文件、後綴名爲「lib」的連接文件,後綴名爲"dll"的動態庫文件。若是使用靜態編譯方式,那麼須要頭文件和靜態庫文件。X86是32位操做系統的庫,X64是64位操做系統的庫。app

(1)「build\x86\vc10\bin」目錄下放的是OpenCV運行時所需的動態運行庫,cors

(2)「build\x86\vc10\lib」目錄放的是編譯OpenCV程序時所需的的動態連接庫,ide

(3)「build\x86\vc10\staticlib」目錄方式的靜態編譯時OpenCV所須要的靜態連接庫,若是是靜態編譯,運行時則不須要「build\x86\vc10\bin」目錄的DLL文件,但編譯後的文件較大。學習

因爲我使用VS2010,因此只關注目錄 E:\Soft\opencv\build\x86\vc10 。爲了使VS2010能夠編譯OpenCV程序,咱們須要對VS2010作一些設置,主要是讓VS2010能找到OpenCV的頭文件和連接庫。在「OpenCV安裝目錄\build\docs」目錄下有個名爲「opencv_tutorials.pdf」的PDF文檔,裏面的1.5節「How to build application with OpenCV inside the Micorosoft Visual Studio」說明了如何配置VS2010。網站

若是想一次配置對全部的C++項目都適用,能夠按以下配置:ui

一、在VS2010打開任何一個C++項目,而後選擇「視圖」=》「其餘窗口」=》「屬性管理器」,以下圖:spa

打開的屬性管理器窗口以下:

 

二、在打開的屬性管理器窗口中,展開「Degug|Win32」節點,雙擊「Micorsoft.Cpp.Win32.user」會打開全局屬性設置窗口,

(1)在左邊選擇「VC++目錄」;

(2)在右邊「包含目錄」中加上OpenCV的頭文件目錄,個人頭文件目錄是放在「E:\Soft\opencv\build\include」,這個根據OpenCV的安裝目錄,通常在build\include目錄;

(3)在右邊「庫目錄」中加上OpenCV的連接庫目錄,個人VS2010庫目錄是放在「E:\Soft\opencv\build\x86\vc10\lib」,這個是根據OpenCV的安裝目錄和IDE版本決定,根據本身的狀況選擇。

對「Release|Win32」節點下的「build\x86\vc10\bin」也作一樣配置。

二、第一個OpenCV程序

經過以上配置,OpenCV的開發環境已經搭建起來,下面咱們來寫第一個OpenCV HelloWorld程序。

打開VS2010,新建一個Win32控制檯應用程序

新建後的項目以下:

 雙擊「HelloWorld.cpp」文件,輸入以下內容

//C++輸入輸出庫頭文件
#include <iostream>
//OpenCV核心庫頭文件
#include <opencv2\core\core.hpp>
//OpenCV圖形處理頭文件
#include <opencv2\highgui\highgui.hpp>

//OpenCV核心動態連接庫,和core.hpp頭文件對應,d表明調試版本
#pragma comment(lib,"opencv_core242d.lib")
//OpenCV圖形處理動態連接庫,和highgui.hpp頭文件對應,d表明調試版本
#pragma comment(lib,"opencv_highgui242d.lib")

int _tmain(int argc, _TCHAR* argv[])
{
    //窗口名稱
    std::string windowName = "HelloWorld";
    //圖像名稱
    std::string imgFile = "opencv-logo.png";
    //讀入圖像
    cv::Mat image = cv::imread(imgFile,CV_LOAD_IMAGE_COLOR);
    //若是沒法讀取圖形
    if(!image.data)
    {
        std::cout << "沒法打開圖像文件" <<std::endl;
        system("PAUSE");//暫停窗口
        return -1;
    }
    //建立一個新窗口
    cv::namedWindow(windowName,CV_WINDOW_AUTOSIZE);
    //將圖像顯示都新建立的窗口中
    cv::imshow(windowName,image);
    //等待,直到用戶按任意鍵時退出
    cv::waitKey(0);

    return 0;
}

若是編譯無錯誤,要運行程序,還要複製一些必要的文件: 

(1)在OpenCV的目錄下的doc文件夾有一個名爲"opencv-logo.png"的圖像文件,將其複製到「HelloWorld」項目的文件夾下,

(2)到OpenCV安裝目錄\build\x86\vc10\bin\ 複製三個文件 opencv_core242d.dll、opencv_highgui242d.dll、tbb_debug.dll 三個文件到解決方案文件夾下的Degug目錄,也就是編譯後可執行文件所在的目錄。

若是一切正常,運行後的效果以下:

 

三、OpenCV學習資源

2.3.2版本的幫助文檔翻譯 http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html ,是OpenCV安裝目錄\build\docs\opencv_tutorials.pdf文檔的中文翻譯。

http://www.opencv.org.cn/ 也是學習OpenCV的好地方。

http://wiki.opencv.org.cn/index.php OpenCV的各類中文資料。

http://opencv.org/documentation.html 官方的在線幫助文檔。

http://www.sigvc.org/bbs/ 視覺計算論壇。

相關文章
相關標籤/搜索