VS2013安装oepncv2.4.10 以及opencv 3.0.0
Author:Maddock?
Date:2014.12.27
……………………………………………………………………………………………………
PS: VS2013 + OPENCV 3.0.0 的安裝,連接器的輸入選項簡化為:
#ifndef _OPENCV_LIB_
#define _OPENCV_LIB_
#ifdef _DEBUG
#pragma comment(lib, "opencv_ts300d.lib")
#pragma comment(lib, "opencv_world300d.lib")
#else
#pragma comment(lib, "opencv_ts300.lib")
#pragma comment(lib, "opencv_world300.lib")
#endif
#endif
?
其他步驟相同。
不過,目前opencv3.0.0的using namespace cv和windows.h中ACCESS_MASK定義沖突,
錯誤?? ?4?? ?error C2872: “ACCESS_MASK”: 不明確的符號?? ?c:\program files (x86)\windows kits\8.1\include\um\winnt.h?? ?9084?? ?1?? ?opencvtest
注釋掉using namespace cv,再所有需要用到cv的地方加cv::……………………………………………………………………………………………
準備工具 windows平臺 opencv2.4.10?vs2013
1解壓opencv2.4.10.exe,我放在目錄 C:\Adisk\software\opencv\opencv2410\opencv
配置環境變量
Path: C:\Adisk\software\opencv\opencv2410\opencv\build\x86\vc12\bin
在x86文件夾內還有vc10,vc11,vc12 3個文件夾,分別對應vs2010,vs2012,vs2013
2?配置VS2013的include?和lib目錄
新建win32工程,打開屬性管理器(視圖–>其他窗口–>屬性管理器)
右鍵Debu32中的Mirosoft.Cpp.Win32.user選擇屬性,可以看見
編輯包含目錄和庫目錄
包含目錄 C:\Adisk\software\opencv\opencv2410\opencv\build\include
庫目錄 C:\Adisk\software\opencv\opencv2410\opencv\build\x86\vc12\lib
下一步點擊連接器的輸入選項,編輯附加依賴項,加入
opencv的debug版本和release版本需要的lib不同,但是在編輯右鍵Debu32中的Mirosoft.Cpp.Win32.user選擇屬性這一步中,相應的
release版本也跟著變了,如果編譯運行debug版本是沒有問題,切換到release版本是需要把debug版本去掉,否則opencv中的部分函數將不能
運行。
debug版本
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_ml2410d.lib
opencv_nonfree2410d.lib
opencv_objdetect2410d.lib
opencv_ocl2410d.lib
opencv_photo2410d.lib
opencv_stitching2410d.lib
opencv_superres2410d.lib
opencv_ts2410d.lib
opencv_video2410d.lib
opencv_videostab2410d.lib
release版本
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
opencv_nonfree2410.lib
opencv_objdetect2410.lib
opencv_ocl2410.lib
opencv_photo2410.lib
opencv_stitching2410.lib
opencv_superres2410.lib
opencv_ts2410.lib
opencv_video2410.lib
opencv_videostab2410.lib
?
3??測試
// opencvtest.cpp : 定義控制臺應用程序的入口點。
//
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
?? ?Mat src = imread("image.png", 0);
?? ?if (src.empty())
?? ?{
?? ??? ?cout << "打開圖像失敗!" << endl;
?? ??? ?return -1;
?? ?}
?? ?namedWindow("image", CV_WINDOW_AUTOSIZE);
?? ?imshow("image", src);
?? ?waitKey(0);
?? ?return 0;
}
如果出現dll文件丟失,可以注銷賬戶或者重啟電腦是環境變量生效。
?
PS: 按照上述方法做的時候,在debug和release界面的附加依賴項里其中一個編輯完,另一個為什么也出現了和其一樣的附加依賴項?怎么實現debug和release中的附加依賴項不一樣?? 哪位大俠知道解決方法,求告知!!!!!
參考方案:
每次編寫代碼在前面加入下面的代碼,可以不用配置編輯附加依賴項
參考來源:http://blog.csdn.net/xiaohuh421/article/details/7476485
#ifdef _DEBUG
#pragma comment(lib,"..\\debug\\LedCtrlBoard.lib")
#else
#pragma comment(lib,"..\\release\\LedCtrlBoard.lib")
#endif
#ifdef _DEBUG
#pragma comment(lib, "opencv_calib3d2410d.lib")
#pragma comment(lib, "opencv_contrib2410d.lib")
#pragma comment(lib, "opencv_core2410d.lib")
#pragma comment(lib, "opencv_features2d2410d.lib")
#pragma comment(lib, "opencv_flann2410d.lib")
#pragma comment(lib, "opencv_gpu2410d.lib")
#pragma comment(lib, "opencv_highgui2410d.lib")
#pragma comment(lib, "opencv_imgproc2410d.lib")
#pragma comment(lib, "opencv_legacy2410d.lib")
#pragma comment(lib, "opencv_ml2410d.lib")
#pragma comment(lib, "opencv_nonfree2410d.lib")
#pragma comment(lib, "opencv_objdetect2410d.lib")
#pragma comment(lib, "opencv_photo2410d.lib")
#pragma comment(lib, "opencv_stitching2410d.lib")
#pragma comment(lib, "opencv_ts2410d.lib")
#pragma comment(lib, "opencv_video2410d.lib")
#pragma comment(lib, "opencv_videostab2410d.lib")
#else
#pragma comment(lib, "opencv_calib3d2410.lib")
#pragma comment(lib, "opencv_contrib2410.lib")
#pragma comment(lib, "opencv_core2410.lib")
#pragma comment(lib, "opencv_features2d2410.lib")
#pragma comment(lib, "opencv_flann2410.lib")
#pragma comment(lib, "opencv_gpu2410.lib")
#pragma comment(lib, "opencv_highgui2410.lib")
#pragma comment(lib, "opencv_imgproc2410.lib")
#pragma comment(lib, "opencv_legacy2410.lib")
#pragma comment(lib, "opencv_ml2410.lib")
#pragma comment(lib, "opencv_nonfree2410.lib")
#pragma comment(lib, "opencv_objdetect2410.lib")
#pragma comment(lib, "opencv_photo2410.lib")
#pragma comment(lib, "opencv_stitching2410.lib")
#pragma comment(lib, "opencv_ts2410.lib")
#pragma comment(lib, "opencv_video2410.lib")
#pragma comment(lib, "opencv_videostab2410.lib")
#endif
?
如果覺得每次添加比較麻煩,可以采用如下一勞永逸的方案:
新建一個opencv_lib.h文件,編輯內容:
#ifndef _OPENCV_LIB_
#define _OPENCV_LIB_
#ifdef _DEBUG
#pragma comment(lib, "opencv_calib3d2410d.lib")
#pragma comment(lib, "opencv_contrib2410d.lib")
#pragma comment(lib, "opencv_core2410d.lib")
#pragma comment(lib, "opencv_features2d2410d.lib")
#pragma comment(lib, "opencv_flann2410d.lib")
#pragma comment(lib, "opencv_gpu2410d.lib")
#pragma comment(lib, "opencv_highgui2410d.lib")
#pragma comment(lib, "opencv_imgproc2410d.lib")
#pragma comment(lib, "opencv_legacy2410d.lib")
#pragma comment(lib, "opencv_ml2410d.lib")
#pragma comment(lib, "opencv_nonfree2410d.lib")
#pragma comment(lib, "opencv_objdetect2410d.lib")
#pragma comment(lib, "opencv_photo2410d.lib")
#pragma comment(lib, "opencv_stitching2410d.lib")
#pragma comment(lib, "opencv_ts2410d.lib")
#pragma comment(lib, "opencv_video2410d.lib")
#pragma comment(lib, "opencv_videostab2410d.lib")
#else
#pragma comment(lib, "opencv_calib3d2410.lib")
#pragma comment(lib, "opencv_contrib2410.lib")
#pragma comment(lib, "opencv_core2410.lib")
#pragma comment(lib, "opencv_features2d2410.lib")
#pragma comment(lib, "opencv_flann2410.lib")
#pragma comment(lib, "opencv_gpu2410.lib")
#pragma comment(lib, "opencv_highgui2410.lib")
#pragma comment(lib, "opencv_imgproc2410.lib")
#pragma comment(lib, "opencv_legacy2410.lib")
#pragma comment(lib, "opencv_ml2410.lib")
#pragma comment(lib, "opencv_nonfree2410.lib")
#pragma comment(lib, "opencv_objdetect2410.lib")
#pragma comment(lib, "opencv_photo2410.lib")
#pragma comment(lib, "opencv_stitching2410.lib")
#pragma comment(lib, "opencv_ts2410.lib")
#pragma comment(lib, "opencv_video2410.lib")
#pragma comment(lib, "opencv_videostab2410.lib")
#endif
#endif
將該文件放入opencv的安裝目錄:C:\Adisk\software\opencv\opencv2410\opencv\build\include\opencv2\opencv_lib.h也就是和 #include <opencv2/opencv.hpp>在同一個目錄,之后只需要包含頭文件 #include <opencv2/opencv_lib.h>
就可以在Debug和Release版本之間任意切換
?
轉載于:https://www.cnblogs.com/adong7639/p/4189276.html
總結
以上是生活随笔為你收集整理的VS2013安装oepncv2.4.10 以及opencv 3.0.0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 青春可长可短, 就看自己如何度过(亦或者
- 下一篇: Data Storage(数据存储)之内