win10 + VS2010 + OpenCV2.4.10重編譯OpenCV開發環境搭建

win10 + VS2010 + OpenCV2.4.10重編譯OpenCV開發環境搭建


重編譯的好處:可以調試的時候看OpenCV的源代碼。

   重編譯要得到的東西:Debug版本和Release版本的dlllib,頭文件。(dll添加到環境變量裏,運行時用,自己編譯的dll調試時可以跟蹤到Opencv的源碼內;lib和頭文件配置到編譯器裏)

PS:如果只是使用Opencv而不需要跟蹤源碼,則使用Opencv自帶的庫文件即可。跳到5配置Opencv開發環境,對應的文件都在..\opencv\build\目錄下,其中dll(bin目錄)lib目錄在平臺文件夾下如..\opencv\build\x86\vc10

   

    本機Win8.1 64位系統,裝有VS2010,以編譯32位的Opencv庫爲例,要編譯64位庫需要注意選擇64位的配置。

1       下載OpecvCMakeTBB並安裝

下載OpenCV2.4.10http://opencv.org/downloads.html,解壓到D:\Program Files\

下載cmake-3.2.3-win32-x86http://www.cmake.org/cmake/resources/software.html安裝時請勾選上“AddCMake to the system PATH for all users”。

下載tbb43_20150424oss_winhttp://threadingbuildingblocks.org/download,解壓到D:\Program Files\


2       配置TBB環境變量

Path裏添加:D:\ tbb43_20150424\bin\ia32\vc10

bin目錄內ia32表示要編譯32位工程,intel64表示要編譯64位工程,vc11表示VS版本爲2012vc10代表2010

3       CMake生成VS2010OpenCV工程

新建文件夾OpenCVProjectD:\OpenCVProject(用於存放自己的OpenCV編譯工程)。

打開CMake"Browse Source..."選擇Opencv的目錄D:\opencv\sources(內有CMake的組態檔"CMakeLists.txt"),"BrowseBuild..."選擇剛纔自己新建的工程存放路徑"D:/OpenCVProject"。點擊Configure按鈕,在出現的對話框中選擇Visual Studio 10(如果編譯64dll注意選擇64VS10配置),默認Use default native compilersFinish繼續。

第一輪配置完後往下拉,勾選WITH_TBB,點擊Configure進入第二輪。

修改紅色部分TBB路徑爲D:\tbb43_20150424oss\include,再次點擊Configure;繼續點擊Configure

直到沒有紅色標記。

  點擊Generate生成Opencv工程,退出CMake




4       Opencv VS2010工程編譯生成自己的Opencv


打開生成的Opencv工程,選擇CMakeTargetsINSTALL右鍵“生成”,生成Debugdlllib

我08年的老電腦,編譯要十幾分鍾。。。

切換編譯模式爲Release模式,重複上一步生成Releasedlllib


  目標達成,在D:\OpenCVProject\install內有我們所要的dlllibinclude頭文件,有了這些就可以進行Opencv開發與源碼跟蹤了。跟dll關聯的源代碼在Opencv安裝目錄D:\opencv\modules內。


我習慣將將D:\ProgramFiles\OpenCVProject\install拷貝到D:\opencv\下,並將install重命名爲vc10x86。而此時D:\OpenCVProject沒有用了,但是不能刪除,否則無法跟蹤源碼,佔用6G多空間,可以通過VS2012的“清理解決方案”來減到3G多。



5       配置Opencv開發環境


在環境變量Path裏添加:D:\opencv\vc10x86\x86\vc10\bin

     設置後這裏可能需要重啓下才會成功


 

6       編寫測試工程


6.1   打開VS2012,新建控制檯應用程序TestOpencv


6.2   配置包含目錄和庫目錄


項目->xxx屬性->VC++目錄->包含目錄,添加D:\ProgramFiles\opencv\vc11x86\include


再加D:\opencv\vc10x86\include\opencv2最後加,D:\opencv\vc10x86\include\opencvopencv版本不同,文件夾也不同。


項目->xxx屬性->VC++目錄->庫目錄,添加D:\ProgramFiles\opencv\vc11x86\lib


項目->xxx屬性->鏈接器->輸入->附加依賴項,添加lib文件名列表如下圖。


image


 


對於配置方案爲Debug的配置,Opencvdlllib中,末尾帶d的就是Debug版本。其中文件名帶“2410”表示opencv的版本號爲2 .4.10,針對不同版本的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





6.3   添加測試代碼

修改TestOpencv.cpp,代碼爲:

#include <iostream>    
#include <opencv2/core/core.hpp>    
#include <opencv2/highgui/highgui.hpp>    
using namespace cv;      
int main()    
{    
    Mat img=imread("pp.jpg");//讀入一張圖片  
    namedWindow("Test");      //創建一個名爲Test窗口  
    imshow("Test",img);   //窗口中顯示圖像  
    waitKey(5000);            //等待5000ms後窗口自動關閉  
}    













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章