Я пытаюсь сделать 3 снимка, разделенных задержкой в 1 с.При съемке запущенного секундомера это показывает, что эти изображения находятся на расстоянии ~ 30 мс друг от друга.Приложение работает на Raspberry Pi 3 B + с Picam v2.1 (установлен на 30 FPS, и в противном случае настройки по умолчанию).Мой код выглядит следующим образом:
#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 изображений, прежде чем я вижу, что моя рука удалена).
У меня есть поиск по всему, но я не могу найти других с такой же проблемой.
Пожалуйста, дайте мне знать, если мне нужно добавить дополнительную информацию.