OpenCV

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
  • 0
  • 9 июня 2009, 13:37
  • noonv

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.