1. 程式人生 > >vs2010+opencv3.0.0 環境配置 (以及配置技巧)

vs2010+opencv3.0.0 環境配置 (以及配置技巧)

(1)

目前最新的opencv庫為opencv 3.0.0 庫,其下載地址為:http://opencv.org/downloads.html
Vs最新的可能達到了vs2015,考慮軟體太大,且opencv中並沒有對應vs2015版本的opencv,所以選擇老一點版本的vs2010

(2)

下載完的opencv為exe檔案,解壓一下會出現兩個資料夾如下:
這裡寫圖片描述

(3)

下面是配置電腦的屬性,開啟:計算機 > 屬性 > 高階系統設定 > 環境變數
新建一個環境變數OPENCV,將其值設定為D:\opencv\opencv\build,這個路徑就是你的解壓opencv所在路徑(這個路徑最好是全英文路徑),建立如下:
這裡寫圖片描述


然後還是在環境變數下修改系統變數中的path,新增:
;D:\opencv\opencv\build\x86\vc10\bin
這裡最好都要選擇x86,雖然你的機器可能是64位系統。
這裡寫圖片描述
至此電腦上的環境變數完成。

(4)

下面開啟vs2010(假設你已經安裝好了),新建專案,win32的空專案
這裡寫圖片描述
取名test4,在4est4上右擊,新增一個c++檔案:
這裡寫圖片描述
為這個c++配置opencv的屬性,點選下方的屬性:
這裡寫圖片描述

(5)

然後在debug與release上分別右擊,新增新的專案屬性表,並重命名opencv_debug與opencv_release(名字隨便取),建完後如下:
這裡寫圖片描述

(6)

好了,下面是對這兩個新建的屬性表進行編輯了,首先opencv_debug的編輯,點選它:
這裡寫圖片描述
這裡寫圖片描述
新增這兩項的路徑(注意自己的路徑)。
在“連結器”的“輸入”中再編輯如下:
這裡寫圖片描述
新增的值如下(要是你的版本不是opencv3.0.0,是2.幾.幾的話,那麼你就不能複製下面的呢,需要把300改成你的版本,網上有其他版本的這些值可以去找找)
opencv_ts300d.lib
opencv_world300d.lib
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
libwebpd.lib
opencv_calib3d300d.lib
opencv_core300d.lib
opencv_features2d300d.lib
opencv_flann300d.lib
opencv_highgui300d.lib
opencv_imgcodecs300d.lib
opencv_imgproc300d.lib
opencv_ml300d.lib
opencv_objdetect300d.lib
opencv_photo300d.lib
opencv_shape300d.lib
opencv_stitching300d.lib
opencv_superres300d.lib
opencv_video300d.lib
opencv_videoio300d.lib
opencv_videostab300d.lib
Zlibd.lib

好了,下面對opencv_release屬性表進行編輯,編輯的前兩個路徑一摸一樣,不同的是最後一個。
這裡寫圖片描述
具體的值如下:
opencv_ts300.lib
opencv_world300.lib
IlmImf.lib
ippicvmt.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
libwebp.lib
opencv_calib3d300.lib
opencv_core300.lib
opencv_features2d300.lib
opencv_flann300.lib
opencv_highgui300.lib
opencv_imgcodecs300.lib
opencv_imgproc300.lib
opencv_ml300.lib
opencv_objdetect300.lib
opencv_photo300.lib
opencv_shape300.lib
opencv_stitching300.lib
opencv_superres300.lib
opencv_video300.lib
opencv_videoio300.lib
opencv_videostab300.lib
Zlib.lib

可以看到相對於debug只是少了一個d。然後儲存,這樣配置就完成了。下面進行實驗。

(7)

實驗前需要一副實驗圖,這裡我在桌面上放了一副彩色的jpg影象。那麼在cpp下輸入下面簡單程式碼:

#include <iostream>
#include <string>
#include <opencv2\opencv.hpp>  
using namespace std;
using namespace cv;

int main()
{
    string imgPath = "C:\\Users\\admin\\Desktop\\flower.jpg";
    Mat img = imread(imgPath);
    imshow("flower",img);
    waitKey(0);
    return 0;
}

注意路徑下一定要有影象,並且路徑不能複製過來就用,在”\”前必須再加一個轉義字元”\”才可以,千萬不能直接是”C:\Users\admin\Desktop\flower.jpg”,只是直接考過來的路徑。正常的話有結果如下:
這裡寫圖片描述

(8)

至此配置加實驗完成,那麼每次當你建立了一個新的opencv程式的時候是不是都是要重新配置一遍上述過程?理論上是的,但是那樣太麻煩,我們在上述也可以看到,實際上配置就是新增兩個屬性表,那麼我們把這個屬性表建好,每一次我們把這兩個屬性表新增進去就可以了,那樣的話就不是新增新的屬性表了,而是新增已有的屬性表。那麼上述實驗後,配置的這兩個屬性表在哪裡呢?在你的c++程式目錄下,找到即可,比如我的在:
這裡寫圖片描述
把他們拿出去,然後每次在新建的opencv專案中德屬性表中,對應的debug與release分別新增現有屬性表,也就是這兩個即可。這樣免去了每一次要輸半天的配置麻煩。

(9)

這裡再推薦一個c++的快速提示符外掛,就是在程式設計的時候,系統可以根據你輸入的幾個字元來提示你可能要輸入的字元,這樣加快程式設計速度,也很方便,比如你想輸入#include,那麼當你在輸到#in的時候就可以根據提示補全了。這個外掛為VissualAssistX,下載以後直接安裝,然後重啟vs就可以用了,比如上述的一些圖中可以看到加入後會出現不同,比如
這裡寫圖片描述
加入這個外掛後會多了上面那個東西。