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



我正在python的openCV中做一些背景减法,希望有一个有用的输出可以使用。这里的教程包括几种背景减法方法的代码,但在Rodeo中运行每种方法都会导致单独的窗口打开,图像在消失前闪烁,只被下一帧替换。

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

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

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()

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

最新更新