VS2010 + OpenCV2.4.3 編譯+配置(親自驗證)

VS2010 + OpenCV2.4.3 + Windows Form Application

轉載地址:http://download.csdn.net/detail/gdwuyihua/4814502

(注意:如需引用本文請徵得本人許可!)

(原創)OpenCV在VS2010的Windows Form Application 的實現

以下爲本人親自驗證過,含詳細具體的安裝編譯及注意事項,完全可供參考!希望可以幫到OPENCV的愛好者(尤其是新兵)少走彎路.如需源碼可郵件詢索(後附).

VS2010 + OpenCV2.4.3

====================================================

一.OpenCV的編譯安裝:

1.解壓OpenCV-2.4.3.exe -> D:/OpenCV/Resources/OpenCV-2.4.3/opencv

2.運行CMake...爲VS編譯...

Where is the source code(源碼): D:/OpenCV/Resources/OpenCV-2.4.3/opencv

Where is build the binaries(目標): D:/OpenCV/Resources/OpenCV-2.4.3/opencv/vs2010

Configure: 選擇 Visual Studio 10/?

Generate: 生成目標

3.打開D:/OpenCV/Resources/OpenCV-2.4.3/opencv/vs2010,用對應版本的VS打開OpenCV.sln...

A.編譯OpenCV方案Debug版本:

1,編譯OpenCV方案(Debug): 在VS工作區界面左側方案瀏覽器(Solution Explorer)中選中最頂項方案"Solution 'OpenCV' (61 projects)",確定Solution Configure爲Debug,右鍵執行Build Soluton(編譯方案);

2,編譯ALL_BUILD項目(Debug): 在VS工作區界面左側方案瀏覽器(Solution Explorer)列表中選中項目"ALL_BUILD",確定Solution Configure爲Debug,右鍵執行Build(編譯項目);

3,編譯CMakeTargets\INSTALL項目(Debug): 在VS工作區界面左側方案瀏覽器(Solution Explorer)列表中選中"CMakeTargets\INSTALL"項目,確定Solution Configure爲Debug,右鍵執行Build(編譯項目);

B.編譯OpenCV方案Release版本:

1,編譯OpenCV方案(Release): 在VS工作區界面左側方案瀏覽器(Solution Explorer)中選中最頂項方案"Solution 'OpenCV' (61 projects)",確定Solution Configure爲Release,右鍵執行Build Soluton(編譯方案);

2,編譯ALL_BUILD項目(Release): 在VS工作區界面左側方案瀏覽器(Solution Explorer)列表中選中項目"ALL_BUILD",確定Solution Configure爲Release,右鍵執行Build(編譯項目);

3,編譯CMakeTargets\INSTALL項目(Release): 在VS工作區界面左側方案瀏覽器(Solution Explorer)列表中選中"CMakeTargets\INSTALL"項目,確定Solution Configure爲Release,右鍵執行Build(編譯項目);

4.檢查編譯後的結果:

D:\OpenCV\Resources\OpenCV-2.4.3\opencv\vs2010\bin: 有Debug/Release兩目錄及相關文件資源;

D:\OpenCV\Resources\OpenCV-2.4.3\opencv\vs2010\lib: 有Debug/Release兩目錄及相關文件資源;

D:\OpenCV\Resources\OpenCV-2.4.3\opencv\vs2010\install: 有bin/include/lib三目錄及相關文件資源;

其它可不要求

5.應用配置:

a.將編譯好的目錄D:\OpenCV\Resources\OpenCV-2.4.3\opencv\vs2010\install複製到C:\,並改名爲C:\opencv;

b.增加OSXP系統變量Path: c:\opencv\bin (供OpenCV的exe應用程序調用);

c.增加OSXP系統變量OPENCV: 值爲: C:\opencv;

---------------------------------------------

二.程序項目配置:

特別注意: 對項目屬性的配置應注意Debug/Release兩個版本各配置項的統一性,否則會引起可能的編譯出錯,如:Common Language Runtime Support(公共語言運行庫支持): Common Language Runtime Support/(clr) (公共語言運行庫支持(/clr)),否則將會導致編譯出錯!

6.VS應用(VS2010.控制檯應用程序):

6.1,在VS項目屬性中設置有下:

6.1.1,Configuration Properties(屬性)/...

a, General(常規):

Use of MFC(MFC的使用): Use Standard Windows Libraries(使用標準 Windows 庫)

Use of ATL(ALT的使用): Not Using ATL(不使用 ATL)

Common Language Runtime Support(公共語言運行庫支持): No Common Language Runtime Support(無公共語言運行庫支持,其它選項會出錯)

b, C/C++/General:

Additonal Include Directories(附加包含目錄): C:\opencv\include;c:\opencv\include\opencv;C:\opencv\include\opencv2 (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

c, Linker/General:

Additonal Library Directories(附加庫目錄): C:\opencv\lib (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

以上兩項設置b,c(附加包含目錄,附加庫目錄)均可在以下d等效替代等值設置:

d, (VS2005無此項)VC++ Directories:

Include Directories(包含目錄): C:\opencv\include;c:\opencv\include\opencv;C:\opencv\include\opencv2 (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

Library Directories(庫目錄): C:\opencv\lib (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

e, Linker(鏈接器)/Input(輸入)/Additional Libraries(附加依賴項):爲項目屬性引入庫:

Release版本:...............

opencv_core243.lib

opencv_highgui243.lib

opencv_video243.lib

opencv_photo243.lib

opencv_calib3d243.lib

opencv_contrib243.lib

opencv_features2d243.lib

opencv_flann243.lib

opencv_gpu243.lib

opencv_imgproc243.lib

opencv_legacy243.lib

opencv_ml243.lib

opencv_nonfree243.lib

opencv_objdetect243.lib

opencv_stitching243.lib

opencv_ts243.lib

opencv_videostab243.lib

Debug版本...................

opencv_core243d.lib

opencv_highgui243d.lib

opencv_video243d.lib

opencv_photo243d.lib

opencv_calib3d243d.lib

opencv_contrib243d.lib

opencv_features2d243d.lib

opencv_flann243d.lib

opencv_gpu243d.lib

opencv_imgproc243d.lib

opencv_legacy243d.lib

opencv_ml243d.lib

opencv_nonfree243d.lib

opencv_objdetect243d.lib

opencv_stitching243d.lib

opencv_ts243d.lib

opencv_videostab243d.lib

6.2,在VS項目源碼包含引用:

//可用...

#include <opencv2/opencv.hpp>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#pragma comment( lib, "opencv_highgui243d.lib" )

#pragma comment( lib, "opencv_core243d.lib" )

#pragma comment( lib, "opencv_ml243d.lib" )

#pragma comment( lib, "opencv_imgproc243d.lib" )

using namespace cv;

三.程序範碼(按鈕事件):

//按鈕Show事件處理...

namedWindow("show_image",WINDOW_AUTOSIZE);

Mat src = imread("d:/opencv.jpg");

//while(1)

{

imshow("show_image", src);

//char c = waitKey(0);

//if(27 == ' ')

//return 0;

}

//return 0;

============================================================================================

資源: VS2010 + OpenCV2.4.3 + Windows Form Application

一.VS項目屬性中設置有下:

6.1.1,Configuration Properties(屬性)/...

a, General(常規):

Use of MFC(MFC的使用): Use Standard Windows Libraries(使用標準 Windows 庫)

Use of ATL(ALT的使用): Not Using ATL(不使用 ATL)

Common Language Runtime Support(公共語言運行庫支持): Common Language Runtime Support/(clr) (公共語言運行庫支持(/clr))

b, C/C++/General:

Additonal Include Directories(附加包含目錄): c:\opencv\include;c:\opencv\include\opencv;c:\opencv\include\opencv2 (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

c, Linker/General:

Additonal Library Directories(附加庫目錄): c:\opencv\lib (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

以上兩項設置b,c(附加包含目錄,附加庫目錄)均可在以下d等效替代等值設置:

d, (VS2005無此項)VC++ Directories:

Include Directories(包含目錄): c:\opencv\include;c:\opencv\include\opencv;C:\opencv\include\opencv2 (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

Library Directories(庫目錄): c:\opencv\lib (可勾選Inherit from parent or project defaults(繼承父級或項目默認值))

e, Linker(鏈接器)/Input(輸入)/Additional Libraries(附加依賴項):爲項目屬性引入庫:

Release版本:...............

opencv_core243.lib

opencv_highgui243.lib

opencv_video243.lib

opencv_photo243.lib

opencv_calib3d243.lib

opencv_contrib243.lib

opencv_features2d243.lib

opencv_flann243.lib

opencv_gpu243.lib

opencv_imgproc243.lib

opencv_legacy243.lib

opencv_ml243.lib

opencv_nonfree243.lib

opencv_objdetect243.lib

opencv_stitching243.lib

opencv_ts243.lib

opencv_videostab243.lib

Debug版本...................

opencv_core243d.lib

opencv_highgui243d.lib

opencv_video243d.lib

opencv_photo243d.lib

opencv_calib3d243d.lib

opencv_contrib243d.lib

opencv_features2d243d.lib

opencv_flann243d.lib

opencv_gpu243d.lib

opencv_imgproc243d.lib

opencv_legacy243d.lib

opencv_ml243d.lib

opencv_nonfree243d.lib

opencv_objdetect243d.lib

opencv_stitching243d.lib

opencv_ts243d.lib

opencv_videostab243d.lib

二.在VS項目源碼包含引用:

//包含引入OpenCV所需文件...

#include <opencv2/opencv.hpp>

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

//選用Debug/Release...

#ifdef _DEBUG

#pragma comment( lib, "opencv_highgui243d.lib" )

#pragma comment( lib, "opencv_core243d.lib" )

#pragma comment( lib, "opencv_ml243d.lib" )

#pragma comment( lib, "opencv_imgproc243d.lib" )

#else

#pragma comment( lib, "opencv_highgui243.lib" )

#pragma comment( lib, "opencv_core243.lib" )

#pragma comment( lib, "opencv_ml243.lib" )

#pragma comment( lib, "opencv_imgproc243.lib" )

#endif

using namespace cv;

三.程序範碼(按鈕事件):

//按鈕Show事件處理...

namedWindow("show_image",WINDOW_AUTOSIZE);

Mat src = imread("../opencv.jpg");

//while(1)

{

imshow("show_image", src);

//char c = waitKey(0);

//if(27 == ' ')

//return 0;

}

//return 0;

發佈了19 篇原創文章 · 獲贊 10 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章