python - 循环保存生成的多个帧

标签 python opencv

我使用的代码将输入作为视频文件,然后对视频进行图像处理(前景分割)。
我正在尝试保存已处理(输出)的帧,但无法弄清楚如何使用循环这样做。

while(1):
    ret, frame = cap.read()
    fgmask = fgbg.apply(frame)
    cv2.imshow('frame',fgmask)

    cv2.imwrite("frame.jpg", fgmask)

代码的最后一行保存框架。但是当前它仅保存最后生成的输出,因为没有循环保存所有生成的帧。

如何使用循环保存所有已处理的文件?

最佳答案

引入计数器来更改文件名将解决此问题

cnt = 1
while(1):
    ret, frame = cap.read()
    fgmask = fgbg.apply(frame)
    cv2.imshow('frame',fgmask)

    cv2.imwrite("frame" + str(cnt) + ".jpg", fgmask)
    cnt += 1

关于python - 循环保存生成的多个帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41686972/

相关文章:

python - Itertools 在 python 中创建 Ts 和 Hs 的组合作为字符串

python - 如何使用 python 与 "pyreportjasper"从 "jrxml"(带数据库)转换为 "pdf"?

java - 检测物体颜色各种光照OpenCV Java

python - 如何在 OpenCV 中的点之间画线?

python - OpenCV 的 calcOpticalFlowFarneback 的未知输出

python - WMI:Win32_DiskDrive 获取物理磁盘驱动器上的总扇区

python - 如何制作一个始终在 Linux 终端中运行的脚本?

python - 高效矩阵 vector 乘法 : Multithreading directly in Python vs. 使用 ctypes 绑定(bind)多线程 C 函数

opencv - 词袋训练样本

opencv - 如何从 BORDER_CONSTANT 选项中获取值