Я работаю над проектом, который требует низкого разрешения и около 110 кадров в секунду. Поэтому я купил 30 $ PlayStation eye, который обеспечивает 120 кадров в секунду в 320 в разрешении 240.
Я установил предыдущую версию Macam (потому что последняя версия не работала) и успешно получил около 120 кадров в секунду (но я не могу записать из-за некоторых ошибок в Macam).
Я написал простой код для сохранения каждого кадра в виде файла jpg:
#include <stdio.h>
#include "cv.h"
#include "highgui.h"
#include<iostream>
using namespace std;
int main(int argc, char** argv) {
int i = 0;
char *buf;
IplImage *frame;
CvCapture* capture = cvCreateCameraCapture(3);
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH, 320);
cvSetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT, 240);
cvSetCaptureProperty( capture, CV_CAP_PROP_FPS, 110);
while (true) {
frame = cvQueryFrame(capture);
asprintf(&buf, "%d.jpg", i++);
cvShowImage("1", frame);
cvSaveImage(buf, frame);
cvWaitKey(10);
}
return 0;
}
но это только экономит 30 кадров в секунду. Я имею в виду, что он создает 30 файлов вместо 110 файлов в секунду. В чем проблема?
Обновление: Я скомпилировал приведенный выше код, используя следующую команду:
g++ main.cpp `pkg-config --cflags opencv` `pkg-config --libs opencv` -o exec -m32