VS2010下编译OpenCV2.4.6静态库
1、???從?http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/?下載最新的OpenCV2.4.6;
2、???將OpenCV-2.4.6.0.exe存放到D:\Soft\OpenCV2.4.6文件夾下,解壓到當前文件夾下,生成一個opencv文件夾;
3、???下載安裝CMake:http://www.cmake.org/cmake/resources/software.html;
4、???運行CMake(cmake-gui),在Where is the source code中填入剛才步驟(2)解壓縮后的文檔路徑D:/Soft/OpenCV2.4.6/opencv,在Where tobuild the binaries中填入編譯時需要存放的路徑如D:/Soft/OpenCV2.4.6/vs2010,此vs2010文件夾需自己創(chuàng)建;
5、???點擊Configure,在彈出的對話框中選擇Visual Studio 10,其它默認,點擊Finish;
6、???找到BUILD_SHARED_LIBS選項,去掉勾選,為了減少編譯時間,也可去掉一些其它不必要的勾選,點擊Generate;
7、???上述步驟完成后,在vs2010文件夾中,就會看到有OpenCV.sln文件;
8、???使用vs2010打開OpenCV.sln文件,分別在Debug和Release下,選擇Solution Explorer里的Solution OpenCV,點擊右鍵,運行”Rebuild Solution”,點擊CMake Targets下的INSTALL,運行”build”;會在D:/Soft/OpenCV2.4.6/vs2010/install文件夾下的lib文件夾中生成相應(yīng)的靜態(tài)庫;
9、???打開vs2010,新建一個控制臺應(yīng)用程序TestOpenCV,選中工程-->Properties:(1)、VC++ Directories-->Include Directories:分別在Debug和Release模式下加入, D:/Soft/OpenCV2.4.6/vs2010/install/includeD:/Soft/OpenCV2.4.6/vs2010/install/include/opencv D:/Soft/OpenCV2.4.6/vs2010/install/include/opencv2 ?(2)、C/C++-->CodeGeneration-->Runtime Library:在Debug下,將其改為Multi-threaded Debug(/MTD),在Release下,將其改為Multi-threaded(/MT)。
stdafx.h文件代碼為:
#pragma once#include "targetver.h"#include <stdio.h>
#include <tchar.h>#include "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\include\\opencv2\\core\\core.hpp"
#include "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\include\\opencv2\\highgui\\highgui.hpp"
#include "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\include\\opencv2\\imgproc\\imgproc.hpp"using namespace cv;
stdafx.cpp文件代碼為:
#include "stdafx.h"#ifdef _DEBUG
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\zlibd.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libtiffd.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libpngd.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libjpegd.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libjasperd.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\IlmImfd.lib")#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_core246d.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_highgui246d.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_imgproc246d.lib")#pragma comment(lib, "comctl32.lib")
#else
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\zlib.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libtiff.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libpng.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libjpeg.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\libjasper.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\share\\OpenCV\\3rdparty\\lib\\IlmImf.lib")#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_core246.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_highgui246.lib")
#pragma comment(lib, "D:\\Soft\\OpenCV2.4.6\\vs2010\\install\\lib\\opencv_imgproc246.lib")#pragma comment(lib, "comctl32.lib")
#endif
TestOpenCV.cpp文件代碼為:
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[])
{Mat image1, image2, imageResult;image1 = cv::imread("1.jpg", 2 | 4);image2 = cv::imread("2.jpg", 2 | 4);cv::subtract(image1, image2, imageResult);cv::namedWindow("show image");cv::imshow("show image", imageResult);cv::waitKey(0);cv::destroyWindow("show image");return 0;
}
總結(jié)
以上是生活随笔為你收集整理的VS2010下编译OpenCV2.4.6静态库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用JNI技术在Android中调用C+
- 下一篇: 《OpenMP编译原理及实现技术》摘录