OpenCV – библиотека алгоритмов обработки изображений, компьютерного зрения, а так же численных алгоритмов общего назначения. Исходный код библиотеки доступен (за исключением отдельных небольших модулей) и распространяется под открытой лицензией BSD.
C:\OpenCV. После распаковки по указанному пути будут 2 папки:
build – заголовочные файлы, скомпилированные библиотеки и т.п. Эта папка потребуется в первую очередь.sources – полные исходные коды библиотеки. Могут потребоваться для самостоятельной компиляции библиотеки.OPENCV_DIR:
cmd.exe с правами администратораsetx -m OPENCV_DIR "<Папка_куда_распаковали_OpenCV>\build"$(OPENCV_DIR)\include;$(OPENCV_DIR)\include\opencvMulti-threaded Debug (/MTd) – в конфигурации Debug и Multi-threaded (/MT) – в конфигурации Release. $(OPENCV_DIR)\x86\vc12\staticlib – Visual Studio 2013, для x86 платформы,$(OPENCV_DIR)\x86\vc11\staticlib – Visual Studio 2012, для x86 платформы,$(OPENCV_DIR)\x86\vc12\staticlib – Visual Studio 2010, для x86 платформы,$(OPENCV_DIR)\x64\vc12\staticlib – Visual Studio 2013, для x64 платформы,$(OPENCV_DIR)\x64\vc11\staticlib – Visual Studio 2012, для x64 платформы,$(OPENCV_DIR)\x64\vc12\staticlib – Visual Studio 2010, для x64 платформы.<имя_модуля>d.lib для Debug конфигурации, и <имя_модуля>.lib – для Release. Список требующихся модулей:
zliblibjpeglibtifflibpnglibjasperIlmImfopencv_core2411opencv_highgui2411opencv_imgproc2411opencv_video2411opencv_ml2411opencv_calib3d2411opencv_objdetect2411opencv_features2d2411opencv_contrib2411opencv_ts2411opencv_legacy2411opencv_flann2411opencv_gpu2411opencv_nonfree2411opencv_ocl2411opencv_photo2411opencv_stitching2411opencv_superres2411opencv_videostab2411vfw32.lib (не различается для Debug и Release конфигураций).opencv2/opencv.hpp.Последние 3 пункта можно выполнить другим способом – создать и добавить в ваш проект следующий заголовочный файл:
// OpenCV.h
#pragma once
#include <opencv2/opencv.hpp>
#ifdef _MSC_VER // Visual Studio compiler
# if CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 11
// OpenCV version 2.4.11
# if defined(_DEBUG) // debug versions: '***d.lib'
# pragma comment(lib, "zlibd.lib")
# pragma comment(lib, "libjpegd.lib")
# pragma comment(lib, "libtiffd.lib")
# pragma comment(lib, "libpngd.lib")
# pragma comment(lib, "libjasperd.lib")
# pragma comment(lib, "IlmImfd.lib")
# pragma comment(lib, "opencv_core2411d.lib")
# pragma comment(lib, "opencv_highgui2411d.lib")
# pragma comment(lib, "opencv_imgproc2411d.lib")
# pragma comment(lib, "opencv_video2411d.lib")
# pragma comment(lib, "opencv_ml2411d.lib")
# pragma comment(lib, "opencv_calib3d2411d.lib")
# pragma comment(lib, "opencv_objdetect2411d.lib")
# pragma comment(lib, "opencv_features2d2411d.lib")
# pragma comment(lib, "opencv_contrib2411d.lib")
# pragma comment(lib, "opencv_ts2411d.lib")
# pragma comment(lib, "opencv_legacy2411d.lib")
# pragma comment(lib, "opencv_flann2411d.lib")
# pragma comment(lib, "opencv_gpu2411d.lib")
# pragma comment(lib, "opencv_nonfree2411d.lib")
# pragma comment(lib, "opencv_ocl2411d.lib")
# pragma comment(lib, "opencv_photo2411d.lib")
# pragma comment(lib, "opencv_stitching2411d.lib")
# pragma comment(lib, "opencv_superres2411d.lib")
# pragma comment(lib, "opencv_videostab2411d.lib")
# else // release versions: '***.lib'
# pragma comment(lib, "zlib.lib")
# pragma comment(lib, "libjpeg.lib")
# pragma comment(lib, "libtiff.lib")
# pragma comment(lib, "libpng.lib")
# pragma comment(lib, "libjasper.lib")
# pragma comment(lib, "IlmImf.lib")
# pragma comment(lib, "opencv_core2411.lib")
# pragma comment(lib, "opencv_highgui2411.lib")
# pragma comment(lib, "opencv_imgproc2411.lib")
# pragma comment(lib, "opencv_video2411.lib")
# pragma comment(lib, "opencv_ml2411.lib")
# pragma comment(lib, "opencv_calib3d2411.lib")
# pragma comment(lib, "opencv_objdetect2411.lib")
# pragma comment(lib, "opencv_features2d2411.lib")
# pragma comment(lib, "opencv_contrib2411.lib")
# pragma comment(lib, "opencv_ts2411.lib")
# pragma comment(lib, "opencv_legacy2411.lib")
# pragma comment(lib, "opencv_flann2411.lib")
# pragma comment(lib, "opencv_gpu2411.lib")
# pragma comment(lib, "opencv_nonfree2411.lib")
# pragma comment(lib, "opencv_ocl2411.lib")
# pragma comment(lib, "opencv_photo2411.lib")
# pragma comment(lib, "opencv_stitching2411.lib")
# pragma comment(lib, "opencv_superres2411.lib")
# pragma comment(lib, "opencv_videostab2411.lib")
# endif // defined(_DEBUG)
# endif // CV_MAJOR_VERSION == 2 && CV_MINOR_VERSION == 4 && CV_SUBMINOR_VERSION == 11
#pragma comment(lib, "Vfw32.lib") // 'Video for Windows', used by OpenCV for video capture
#endif // _MSC_VER
Проект готов, можно начинать пользоваться:
#include "OpenCV.h"
void main(void) {
cv::Mat image = cv::imread("sample.jpg");
cv::imshow("image", image);
cv::waitKey(0);
}
Если вы используете Visual Studio 2008 или более раннюю, то подходящих готовых *.lib файлов в поставке нет. Придётся их собрать из исходных кодов самостоятельно.
bin\cmake-gui.exe.<Папка_куда_распаковали_OpenCV>\sourceC:\Temp\build_x86.sources.C:\Temp\build_x86 находится проект для Visual Studio: OpenCV.sln. Загружаем его, и запускаем компиляцию командой Build → Build solution, сначала для Debug, а затем и для Release конфигурации. Построение всех библиотек может занять довольно значительное время.<Папка_куда_распаковали_OpenCV>\build\x86\vc9\staticlib. В нашем примере искать файлы нужно в папках
C:\Temp\build_x86\3rdparty\lib\DebugC:\Temp\build_x86\3rdparty\lib\ReleaseC:\Temp\build_x86\lib\DebugC:\Temp\build_x86\lib\Release