在python上使用opencv。我录制了视频,然后将其分成了图片,但是花了很长时间,所以我想在录制视频时立即将视频分割成图片。我在互联网上找到了代码,但它只能捕获1张图片。
import cv2
def main():
cam = cv2.VideoCapture(0)
frame = cam.read()[1]
cv2.imwrite(filename='img%d.jpg',img=frame)
if __name__== '__main__':
main()
任何人都可以帮助我吗?我是python和opencv的新手。
答案 0 :(得分:1)
您没有增加文件名,因此会一次又一次地被覆盖。此外,您需要while
循环。尝试:
import cv2
def main():
cam = cv2.VideoCapture(0)
frameNum = 0
isCaptured = True
while True:
isCapture, frame = cam.read()
if not isCapture:
# no more frame, exit loop
break
frameNum = frameNum + 1
fileName = 'img{:d}.jpg'.format(frameNum)
cv2.imwrite(filename=fileName,img=frame)
if __name__== '__main__':
main()