64位Win7下VS2010使用OpenCV2.4.11

  安裝完OpenCV2.4.11後(即將下載好的opencv安裝包解壓到某個文件夾,我的安裝目錄是C:\Program Files\OpenCV24),先配置環境變量,配置環境變量時,建議把x86和x64的的bin目錄都加上:
系統(或用戶)環境變量如下:

變量名 變量值
Path C:\Program Files\OpenCV24\opencv\build\x64\vc10\bin;C:\Program Files\OpenCV24\opencv\build\x86\vc10\bin
OPENCV C:\Program Files\OpenCV24\opencv\build

不然可能會報錯:程序“XXXXXX”已退出,返回值爲 -1073741701 (0xc000007b)


  由於VS2010默認編譯平臺是Win32,所以在給VS2010配置OpenCV時,我使用的是x86目錄。當然如果要選擇x64的編譯平臺,需要在配置管理器中新建x64平臺,這裏寫圖片描述,x64平臺的配置和Win32的類似,只是在配置的時候需要使用x64目錄,屬性管理器中也需要選擇相應的x64屬性頁配置。
這裏寫圖片描述
雙擊上圖選中部分,進行配置(這是全局配置,以後所有項目都採用該配置,當然也可以在指定項目屬性中進行配置,不過這樣只對指定項目有用)。
建議以下配置都選中 這裏寫圖片描述
這裏寫圖片描述
可執行目錄中添加:

C:\Program Files\OpenCV24\opencv\build\x86\vc10\bin

包含目錄中添加:

C:\Program Files\OpenCV24\opencv\build\include
C:\Program Files\OpenCV24\opencv\build\include\opencv
C:\Program Files\OpenCV24\opencv\build\include\opencv2

庫目錄中添加:

C:\Program Files\OpenCV24\opencv\build\x86\vc10\lib

這裏寫圖片描述
附加庫目錄中添加:

C:\Program Files\OpenCV24\opencv\build\x86\vc10\lib

這裏寫圖片描述
附加依賴項中添加C:\Program Files\OpenCV24\opencv\build\x86\vc10\lib中的庫文件:
Debug庫(調試模式庫):

opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_ml2411d.lib
opencv_nonfree2411d.lib
opencv_objdetect2411d.lib
opencv_ocl2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_superres2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_videostab2411d.lib

Release庫(發佈模式庫):

opencv_calib3d2411.lib
opencv_contrib2411.lib
opencv_core2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_gpu2411.lib
opencv_highgui2411.lib
opencv_imgproc2411.lib
opencv_legacy2411.lib
opencv_ml2411.lib
opencv_nonfree2411.lib
opencv_objdetect2411.lib
opencv_ocl2411.lib
opencv_photo2411.lib
opencv_stitching2411.lib
opencv_superres2411.lib
opencv_ts2411.lib
opencv_video2411.lib
opencv_videostab2411.lib

  我剛開始添加的是x64目錄,編譯時一直報錯:error LNK2019: 無法解析的外部符號”XXXX”
後面換成x86目錄才編譯通過,原因可能是因爲我選的編譯平臺是Win32,所以只能用x86目錄。


示例程序:

#include <opencv2\opencv.hpp>  
#include<opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>
#include<iostream>

using namespace cv;

int main(int argc, char *argv[])
{
    Mat lena=imread("lena.jpg"); //載入圖像到Mat,jpg文件和該cpp在同一文件夾
    namedWindow("lena"); //創建一個名爲 "lean"的窗口   
    imshow("lena",lena);    //顯示名爲 "lena"的窗口
    waitKey(5000);  // 只對窗口機制起作用(顯示5000ms,隨後返回-1,即窗口關閉),若在此期間有按鍵按下,則馬上返回按鍵的ASCII碼。
    //system("pause");
    return 0;
}

輸出結果:
這裏寫圖片描述
  這裏必須在imshow後加入waitkey,因爲WaitKey不止是Wait Key 而已,它其實還涉及到消息響應,有這個函數cv內部的WndProc函數才能起作用,纔會更新窗口。

參考資料

  1. VC 2010下安裝OpenCV2.4.4http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.4
  2. openCV 利用Mat 類讀入並顯示圖像http://blog.sina.com.cn/s/blog_a25f7f250102v4mt.html
  3. OpenCV: imshow後不加waitkey無法顯示視頻http://blog.163.com/yuyang_tech/blog/static/2160500832013917111920645/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章