我在我的树莓派2 B +上使用opencv进行实时图像处理。我正在使用raspberry pi的相机并在开始图像处理之前安装了V4l2驱动程序。 问题是我得到大约2-3 fps,延迟大约3秒。我正在做一个实时应用程序,由于这些限制我无法实现它。此外,当我尝试设置我的帧速率和分辨率时,我得到以下错误:
视频错误:V4L / V4L2 VIDIOC_CROPCAP
VIDEOIO ERROR:不支持设置属性#16
VIDEOIO ERROR:不支持设置属性#5
这个问题的可能原因是什么? 这是我的代码:
#include <opencv2/opencv.hpp>
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
using namespace cv;
using namespace std;
int main( int argc, char** argv ) {
namedWindow("Camera",WINDOW_AUTOSIZE);
VideoCapture cap;
cap.open(0);
if(!cap.isOpened())
{
cout<<"Camera is not accessible"<<endl;
}
int width,length;
double fps;
fps=60;
cap.set(CV_CAP_PROP_CONVERT_RGB,false);
cap.set(CV_CAP_PROP_FPS,fps);
cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);
cap.set(CV_CAP_PROP_FRAME_WIDTH,320);
Mat frame;
while(1)
{
cap>>frame;
fps = cap.get(CV_CAP_PROP_FPS);
width = cap.get(CAP_PROP_FRAME_WIDTH);
length = cap.get(CAP_PROP_FRAME_HEIGHT);
cout<<fps<<endl<<width<<endl<<length<<endl;
imshow("Camera",frame);
waitKey(33);
}
}