Win10和Visual studio2015環境下opencv2/opencv3共存

現網上有大量VS+opencv配置方法,而且方法基本都是只需第一次配置,以后無需重新配置。一次配置就一勞永逸的優勢很明顯,但也有一個很不方便的缺陷所在:假如你按照這樣的方法配置了VS+opencv3,使用過程中感覺:“哇塞,opencv3大量的module用起來好爽,硬件加速用起來好快啊?。 ?,然而當你碰到難題需要上網求助,網上搜到大牛放出的代碼超級完美的時候,卻發現大牛用opencv2編寫的程序你無法運行。作為剛入門的小白改編成opencv3又有些許困難.這是你想起來可以自己配置環境嘛,于是下載opencv2進行配置,duang.duang.duang配置一通....結果失敗了。而且opencv3竟然也不能再用了?。?! 上邊其實是我初期遇到的問題,之后各種重裝。。。心累。 下邊介紹的方法:每次都需要重新配置項目,但優勢在一個穩定??!opencv2和opencv3各種版本隨便切換~~

…………………………………………………………正文分割線…………………………………………………………………

1. Visual studio 2015下載安裝

C盤容量不吃緊的話建議默認安裝位置,畢竟速度快一點。

(要用到opencv)組件選擇:vc++ 和visual studio2015updata(其他有需要后期再安裝)

2.下載opencvSDK:

a. opencv2和opencv3官網下載地址如下:

opencv2410:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.10/opencv-2.4.10.exe/download

opencv310 : https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download

b. opencv安裝即解壓,解壓到合適的硬盤里。

3.環境配置:

其他方法中的系統環境變量設置在此不需要。直接進行配置。

a. 新建win32控制臺應用程序,選擇空項目,并先創建一個.cpp源文件

創建項目
空項目
新建一個.cpp源文件

b. 右鍵項目-->屬性:

i). c/c++ -->附加包含目錄:opencv文件/build/include(這一步操作中使用opencv2或opencv3,文件夾名稱都一樣)

ii). 鏈接器-->常規-->附加庫目錄:opencv2文件/build/x86/vc12/lib(若使用opencv3文件/build/x64/vc14/lib)

iii). Link-->輸入-->附加依賴項(附加依賴項貼到教程最后opencv2和opencv3附加依賴項不一樣,debug和release模式也不一樣),最后點擊:應用,確定

iv). 將opencv2和opencv3如下文件夾中的所有文件拷貝到文件夾C/windows/system32和C/windows/sysWOW64中 :

opencv2文件夾下的build/x86/vc12/bin 和?

opencv3文件夾下的build/x64/vc14/bin

4.解決方案平臺選擇(如圖):

當使用opencv2需要選擇x86,

當使用opencv3需要選擇x64,

如果不匹配會出現如下錯誤:或者“模塊計算機類型X86與目標計算機類型X64沖突”

5.缺失文件下載:

配置完成后第一次測試代碼可能會出現某.lib后綴文件不存在(2017.11.27更新:重裝系統后第一次配置opencv的時候終于記下了名字),出現這個問題的時候從網上搜索此lib后綴文件并下載放入opencv的lib庫文件夾下,建議C/windows/system32和C/windows/sysWOW64中也復制進去,即可運行。

...................................................................................................................................................

以上完成以后,就能歡樂的使用opencv了,下次新建項目按需求重復3,4步,選擇合適的文件夾即可。雖然每次新建項目都要多花費一分鐘,但是好在opencv2與opencv3切換使用無壓力不是嘛?。?!

最后附上附加依賴項和測試代碼:

附加依賴項:

(opencv2410,debug版)................................................................................................

opencv_ml2410d.lib

opencv_calib3d2410d.lib

opencv_contrib2410d.lib

opencv_core2410d.lib

opencv_features2d2410d.lib

opencv_flann2410d.lib

opencv_gpu2410d.lib

opencv_highgui2410d.lib

opencv_imgproc2410d.lib

opencv_legacy2410d.lib

opencv_objdetect2410d.lib

opencv_ts2410d.lib

opencv_video2410d.lib

opencv_nonfree2410d.lib

opencv_ocl2410d.lib

opencv_photo2410d.lib

opencv_stitching2410d.lib

opencv_superres2410d.lib

opencv_videostab2410d.lib

(opencv2410,release版)................................................................................................

opencv_objdetect2410.lib

opencv_ts2410.lib

opencv_video2410.lib

opencv_nonfree2410.lib

opencv_ocl2410.lib

opencv_photo2410.lib

opencv_stitching2410.lib

opencv_superres2410.lib

opencv_videostab2410.lib

opencv_calib3d2410.lib

opencv_contrib2410.lib

opencv_core2410.lib

opencv_features2d2410.lib

opencv_flann2410.lib

opencv_gpu2410.lib

opencv_highgui2410.lib

opencv_imgproc2410.lib

opencv_legacy2410.lib

opencv_ml2410.lib

(opencv310,debug版)................................................................................................

opencv_ts310d.lib??

opencv_world310d.lib

(opencv310,release版)................................................................................................

opencv_ts310.lib??

opencv_world310.lib

測試代碼(opencv310,debug模式)...................................................................................

#includeusing namespace cv;

void main()

{

Mat im;

im = imread("xj.jpg");

imshow("OpenCV310", im);

std::cout << "-------------------" << std::endl

<< "OpenCV310 Success!!" << std::endl

<< "-------------------" << std::endl;

waitKey(0);

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。