UPD Уроки по OpenCV: OpenCV шаг за шагом. Введение.
OpenCV (Open Source Computer Vision) — библиотека компьютерного зрения с открытым исходным кодом) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом. Реализована на C/C++.
Сначала скачал последнюю версию с sourceforge.net/projects/opencvlibrary/ — OpenCV_1.1pre1a.exe
сначала не могли найтись dll-ки, пока не прописал в system PATH
C:\program files\opencv\bin
после этого компиляция и линковка проходят нормально, но при запуске exe-ка — вываливается ошибка
возможно нужен VC80.CRT , но я снёс 1.1, поставил 1.0 и всё сразу заработало 🙂
Простой тестовый пример, просто выводит изображение с web-камеры 🙂
// test.cpp // #include "stdafx.h" #include <cv.h> #include <cxcore.h> #include <highgui.h> #include <iostream> using namespace std; //#pragma comment(lib, "cxcore.lib") //#pragma comment(lib, "cv.lib") #pragma comment(lib, "highgui.lib") //#pragma comment(lib, "cvaux.lib") int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. // Инициализируем источник наших изображений. // В данном случае - это видеокамера, подключенная по // одному из интерфейсов. 0 означает, что надо // выбрать первую попавшуюся камеру. У нас их одна, // поэтому не стоит волноваться по этому поводу :) CvCapture* capture = 0; capture = cvCreateCameraCapture(0); if (!capture) { cout << "Initialization failed" << endl; return EXIT_FAILURE; } // Работа с GUI упрощена до невозможного. Необходимо // определить идентификатор (по совместительству - // заголовок окна), по которому мы будем определять // наши окна. const char *windowName = "First steps with OpenCV"; cvNamedWindow(windowName, CV_WINDOW_AUTOSIZE); while(true) { // Опрашиваем камеру для получения следующего кадра IplImage* frame = cvQueryFrame( capture ); if(!frame) break; // processFrame(frame); // Отобразим наш фрейм в окне (не забыли, как мы его // определили? - через идентификатор) cvShowImage(windowName, frame); // По нажатию ESC - выход из цикла char c = cvWaitKey(33); if (c == 27) break; } // Никогда не забываем освобождать память! cvReleaseCapture( &capture ); cvDestroyWindow(windowName); return 0; }
Ссылки
opencv.willowgarage.com