在Raspberry Pi 3B +(手臂处理器)上运行
OpenCV C ++ 3.4静态库由带有相关标志-DENABLE_NEON=ON -DCMAKE_BUILD_TYPE=Release -DWITH_V4L=ON
的源代码构建的库
使用基本的ELP USB网络摄像头(不使用raspi摄像头,因为我最终需要多个摄像头)
这个用于捕获和渲染帧的基本程序得到的像是2或3 FPS。那可能是不对的!
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/shape.hpp>
#include <iostream>
#include <stdarg.h>
#include <thread>
#include "time.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv ) {
VideoCapture cap(0);
cap.set(CAP_PROP_FRAME_WIDTH, 320);
cap.set(CAP_PROP_FRAME_HEIGHT, 240);
cap.set(CAP_PROP_FPS, 30);
cap.set(CAP_PROP_FOURCC, CV_FOURCC('M','J','P','G'));
long startMs = timeMs();
int count = 0;
for(;;) {
Mat frame;
cap >> frame;
imshow("Camera", frame);
if (++count == 30) {
long elapsedMs = (timeMs() - startMs);
double fps = count * 1000.0 / elapsedMs;
cout << "FPS: " << fps << endl;
startMs = timeMs();
count = 0;
}
waitKey(1);
}
return 0;
}
答案 0 :(得分:0)
在似乎经常发生的情况下,在提出并提出问题之后,答案就显而易见了。
问题是我的摄像机的v4l2-ctl配置是在某些修补过程中设置的较早,并且在exposure_absolute
设置很高的情况下仍处于活动状态,这限制了帧速率