我想使用openCV从任何文件夹中读取一系列帧。我按顺序尝试了所有帧,即(1).jpg,(2).jpg,....
VideoCapture cap;
cap.open("Directory/");
for(;;)
{
Mat frame;
cap >> frame;
}
但这是行不通的。之前曾有人问过这个问题,但我不知道为什么这个答案对我不起作用。
我需要重命名图像吗?
开盖应该是cap.open("Directory/(%02d).jpg");
并且您必须重命名图像,使它们看起来像(01).jpg
,(02).jpg
等等,以便它们具有固定的长度。如果图像是这样,(001).jpg
那么您应该使用`cap.open("Directory/(%03d).jpg");
#include "opencv2/opencv.hpp"
using namespace cv;
int main()
{
VideoCapture cap;
cap.open("imgs/(%02d).jpg");
int i=0;
for(;;)
{
if(i++%37==0)cap=VideoCapture("imgs/(%02d).jpg");//there are 37 frames in the dir
Mat frame;
cap >> frame;
imshow("frame",frame);
if(waitKey(1)==27)
exit(0);
}
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句