簡體   English   中英

使用opencv和PlayStation Eye進行高速視頻捕捉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM