如何使用 OpenCV (c++) 存储序列中的所有帧
How to store all frames from a sequence with OpenCV (c++)?
我试图将帧序列与这样的电影分开:
void storeSequence() {
Mat frame;
VideoCapture vid("myVideo.mp4");
if (!vid.isOpened()) {
return;
}
int fps = 30;
int count = 0;
bool cut = false;
vector<Mat> frames;
bool capture = true;
while (capture) {
vid >> frame;
imshow("video", frame);
char character = waitKey(1000 / fps);
Mat outMat;
switch (character) {
case 'c':
cut = !cut;
break;
case 27:
return;
case 'x':
capture = false;
}
if (cut) {
frame.copyTo(outMat);
frames.push_back(outMat);
count++;
}
if (!capture) break;
}
cout << count << endl;
for (int i = 0; i < count; i++) {
stringstream fn;
Mat img = frames[i];
fn << "seq1_" << i << ".jpg" << endl;
imwrite(fn.str(), img);
}
}
显示视频,在我按 c 两次后,然后按 x 控制台告诉我矢量"帧"中存储了多少帧,但没有图像写入我的文件目录中。我错过了什么?(或者有更好的选择来分离序列吗?
将fn << "seq1_" << i << ".jpg" << endl;
更改为fn << "seq1_" << i << ".jpg";
当您在末尾添加 endl 时,您的字符串看起来像这样"seq1_0.jpgn"
蚂蚁这是错误的路径。
相关文章:
- OpenCV 4.2.0 文件存储分段错误
- 如何在OpenCV中存储部分轮廓点喜欢新矢量中的左侧,该类型为<vector<vector<Point>>
- OpenCV 文件存储 - 错误:元素之间的解析错误 (icvYMLParseValue) 缺失
- 如何将捕获的图像存储在OpenCV中(将图片保存到计算机)
- OpenCV:无法从 contrib 存储库中找到模块(跟踪器,选择ROI)
- OpenCV:文件存储操作员">>"在一个项目中工作,但不在另一个项目中工作(在同一类上)
- C++中的对象序列化,用于存储 OpenCV 的 SVM 对象 [OpenCV 3.1.0]
- 如何使用 OpenCV (c++) 存储序列中的所有帧
- 对整个垫子图像进行排序并在 OpenCV 中存储索引
- 如何在 opencv 中声明存储 0 到 1 之间的浮点值的 Mat
- 如何将来自不同图像的多个描述符存储在C++和OpenCV中的向量向量中
- OpenCV代码将存储在列表中的描述符与新的图像描述符进行比较
- OpenCV文件存储错误
- 如何通过OpenCV存储和读取整数矩阵
- OpenCV C++:从存储在 int 向量的索引中为垫子类型数据创建列范围
- 使用 opencv 通过文件存储保存时出错
- 如何使用OpenCV加载存储在文件中的图像
- 如何使用 OpenCV 比较存储在文件中的两个图像
- 如何加载txt/.pgn.COM文件并将其存储在c++/opencv中的矩阵中
- OpenCV,findContours - 为什么我们需要一个<vector<vector<Point>>来存储轮廓?为什么不直接<矢量<Point>&