我正在尝试拍摄3张图像,但间隔为1秒。拍摄正在运行的秒表图像时,表明图像之间的间隔仅为30ms。该应用程序在具有picam v2.1(设置为30 FPS,否则为默认设置)的Raspberry Pi 3 B +上运行。我的代码如下:
#include <iostream>
#include <opencv2/core/core.hpp>
#include "opencv2/imgcodecs.hpp"
#include "opencv2/imgproc.hpp"
#include <opencv2/opencv.hpp>
#include <unistd.h>
using namespace std;
using namespace cv;
int main()
{
Mat img;
VideoCapture vcap;
cout << "Opening camera..." << endl;
vcap.open(0);
vcap.set(CV_CAP_PROP_POS_FRAMES, 0);
usleep(1000*2000);
if(vcap.isOpened())
{
vcap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
vcap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);
cout << "Taking image...(1)" << endl;
vcap >> img;
imwrite("img1.jpg", img);
usleep(1000*1000);
cout << "Taking image...(2)" << endl;
vcap >> img;
imwrite("img2.jpg", img);
usleep(1000*1000);
cout << "Taking image...(3)" << endl;
vcap >> img;
imwrite("img3.jpg", img);
}
else
{
cout << "Could not open camera!" << endl;
}
vcap.release();
return 0;
}
我还尝试了无限循环,在其中拍摄图像并显示它。这表明相机要花5帧才能与现实保持最新(例如,如果我拍摄手的图像,然后移开我的手,则需要5张图像才能看到我的手被移开)。
我搜索的范围很广,但似乎找不到其他遇到相同问题的人。
如果需要添加更多详细信息,请告诉我。