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位project,intel64表示要編譯64位project,vc11表示VS版本號為2012vc10代表2010

3       CMake生成VS2010OpenCVproject

新建目錄OpenCVProjectD:\OpenCVProject(用於存放自己的OpenCV編譯project)。

打開CMake"Browse Source..."選擇Opencv的文件夾D:\opencv\sources(內有CMake的組態檔"CMakeLists.txt")。"BrowseBuild..."選擇剛才自己新建的project存放路徑"D:/OpenCVProject"

點擊Configurebutton,在出現的對話框中選擇Visual Studio 10(假設編譯64dll注意選擇64VS10配置)。默認Use default native compilersFinish繼續。

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

改動紅色部分TBB路徑為D:\tbb43_20150424oss\include。再次點擊Configure;繼續點擊Configure

直到沒有紅色標記。

  點擊Generate生成Opencvproject,退出CMake




4       Opencv VS2010project編譯生成自己的Opencv


打開生成的Opencvproject。選擇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       編寫測試project


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后窗體自己主動關閉  
}    















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM