在while(1)循环中生成文件编号顺序

时间:2018-12-15 02:35:38

标签: python opencv while-loop

我正在python的openCV中进行一些背景减法,并希望有一个有用的输出来使用。教程here包含用于背景减法的几种方法的代码,但是在Rodeo中运行每种方法会导致单独的窗口打开,并且图像在消失之前会闪烁,仅被下一帧替换。

我想将每个帧存储为自己的图像,以便可以在处理流中进一步处理每个帧。但是,由于我无法独立命名每个文件(如我可以使用for循环(例如,使用cv.imwrite('bg'+str(i)+'.jpg', fgmask)),因此尝试添加imwrite命令受到了阻碍。

最终,以下示例代码中的cv.imshow()对于可视化很有用,但是我想用唯一的顺序文件名保存每个图像。因此,我想使用cv.imshow()行而不是cv.imwrite(),该行使用顺序文件编号系统来写每一帧。

import numpy as np
import cv2 as cv
cap = cv.VideoCapture('vtest.avi')
fgbg = cv.bgsegm.createBackgroundSubtractorMOG()
while(1):
    ret, frame = cap.read()
    fgmask = fgbg.apply(frame)
    cv.imshow('frame',fgmask)
    k = cv.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv.destroyAllWindows()

1 个答案:

答案 0 :(得分:1)

在while循环之前定义i = 0,然后在循环中增加i = 0,并将其用作文件名。