Пытаюсь запустить простейшее приложение выводящая на экран видео.
- Код: Выделить всё • Развернуть
#include "highgui.h"
int main( )
{
cvNamedWindow( "AVI Video", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( "test.avi" );
IplImage* frame;
while(1)
{
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "AVI Video", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "AVI Video" );
}
Компилирую при помощи gcc
- Код: Выделить всё • Развернуть
gcc video.c -o video -L/путь к библиотекам -lhighgui -I/Путь к h файлам
Во общем компиляция проходит успешно, однако после попытки запуска приложения ничего не происходит. Консоль как бы исполняет приложение и всё.
Может кто знает как заставить работать данное приложение на Linux ?
Добавлено спустя 2 часа 48 минут 27 секунд:Вообщем мне удалось получить с помощю OpenCV видео захват в Linux и вывести его в окно. Но почемуто это работает только для одной камеры. У меня есть две web-камеры одна Genius, а вторяа D-Link. С камеры Genius идёт видео захват, а с D-Link не идёт.
Для захвата видео в программе использовал функцию:
- Код: Выделить всё • Развернуть
// index - номер устройства для извлечения видео, отсчет с нуля.
CvCapture* cvCreateCameraCapture( int index );
/*
* устройства отсортированы в соответствии со списком:
CV_CAP_ANY 0
CV_CAP_MIL 100
CV_CAP_VFW 200
CV_CAP_V4L 200
CV_CAP_V4L2 200
CV_CAP_FIREWIRE 300
CV_CAP_IEEE1394 300
CV_CAP_DC1394 300
CV_CAP_CMU1394 300
допустим, первая камера, принадлежащая множеству любых, будет CV_CAP_ANY, следующая - (CV_CAP_ANY+1)
для камер с fireware интерфейсом аналогично: первая - CV_CAP_FIREWIRE, вторая (CV_CAP_FIREWIRE+1).
*/
Передавал в неё аргументы:
CV_CAP_V4L 200
CV_CAP_V4L2 200
Genius камера работает. А вот камера D-Link ругается на плохой аргумент переданный в функцию видео захвата.
При попытки передать аргумент CV_CAP_FIREWIRE 300
приложение запускается с любой из двух камер, однако ничего не происходит т.е. таже фигня что и при попытки вывести в окно видеофайл. консоль вроде запускает бинарник но ничего не происходит.
Мне непонятно в чём может быть различия в двух камерах ? Почему с одной из камер идёт видеозахват, а с другой нет ? И как можно осуществить видеозахва с камеры D-Link ?