我有一个树莓Pi,并安装在它的OpenCV和Guvcview。当我打开Guvcview时,我得到了17-21 fps,但是当我在C++中运行一个简单的程序(仅从摄像头和显示框中捕获)时,我只得到6 fps。
怎么啦?我需要配置Opencv来使用Guvcview的配置?为什么guvcview有20 fps?我能做什么?
谢谢。
P.D.我在我的电脑里做过同样的事情,两种情况下我都得到了29 fps。
//*********************************this是代码C++:
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;
time_t start, end; //variabile di tipo time_t , contiene tempo in sec.
// inizializzo contatore nella dichiarazione
int counter=0;
int main()
{ time(&start);
VideoCapture cap(1);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
if (!cap.isOpened())
{ cout << "could not capture";
return 0; }
Mat frame;
namedWindow("camera", 1);
char key = 'a';
while(key != 27)
{ cap.read( frame);
imshow("camera", frame);
//##################
//time at the end of 1 show, Stop the clock and show FPS
time(&end);
++counter;
cout <<"fps: "<< counter/ difftime(end,start) <<endl <<endl;
//##################
key = waitKey(3); }
destroyAllWindows();
return 0;
}发布于 2013-06-26 10:37:45
我建议通过V4L进行直接视频捕获,因为OpenCV可能会对RGB进行YUYV转换,以及其他涉及浮点计算的东西,而这些在这种硬件上是很昂贵的。我们在嵌入式系统上做了许多机器人项目,经验法则是,直接使用V4L或小型第三方库(如CMVision (http://www.cs.cmu.edu/~jbruce/cmvision/) )在嵌入式系统上进行图像处理总是更好。
发布于 2013-06-26 12:01:36
OpenCV是一个很重的API,下面的技巧可能会带来一些小的改进:
您可以禁用RGB转换:
cap.set(CV_CAP_PROP_CONVERT_RGB , false);如果默认帧率较低,则可以增加帧速率:
cap.set(CV_CAP_PROP_FPS , 60);https://stackoverflow.com/questions/17314360
复制相似问题