roboforum.ru

Технический форум по робототехнике.

Вывод изображения с web cam

Вывод изображения с web cam

Bratsim » 20 мар 2010, 22:58

В сети отрыл код который позволяет отображать видео с камеры

Код: Выделить всёРазвернуть
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
using namespace std;

void processFrame(IplImage*& image);

int main(int argc, char** argv)
{
// Инициализируем источник наших изображений.
// В данном случае - это видеокамера, подключенная по
// одному из интерфейсов. 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 отличать движущиеся объекты от неподвижных. Говорят это легко, но мне еще пока не с чем сравнивать.
Кто знает подскажите...

Re: Вывод изображения с web cam

Виталий » 20 мар 2010, 23:02

Необходимо вычесть из изображения его фон.

Re: Вывод изображения с web cam

Bratsim » 21 мар 2010, 12:05

Вот я нашел одну функцию, но только не могу привязать ее к основной main.

Код: Выделить всёРазвернуть
int cvFindContours(

CvArr* image,

CvMemStorage* storage,

CvSeq** first_contour,

int header_size=sizeof(CvContour),

int mode=CV_RETR_LIST,

int method=CV_CHAIN_APPROX_SIMPLE,

CvPoint offset=cvPoint(0,0)

);


Rambler\'s Top100 Mail.ru counter