[英]High speed video capture with opencv and PlayStation Eye
我正在開發一個需要低分辨率和大約110 fps的項目。 所以我買了30美元的PlayStation眼睛,在240分辨率下提供120 fps的320分辨率。
我安裝了以前版本的macam(因為最新版本不起作用)並成功獲得大約120 fps(但由於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
cvWaitKey(10);
等待10ms。
幀速率為110Hz需要每9ms拍攝一次快照,此外還有用於保存幀的處理時間。
所以這是一個問題,除了CV_CAP_PROP_FPS
沒有按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.