如何使用opencv python从视频中获取图像

时间:2021-07-11 23:25:53

I want to get image from video and store it in '.jpeg' or '.png' format please help me how to do this with opencv My code is

我想从视频中获取图像并将其存储为“.jpeg”或“.png”格式,请帮助我如何使用opencv执行此操作我的代码是

import cv2
vidcap = cv2.VideoCapture('video1.mp4')
success,image = vidcap.read()
count = 0;
print "I am in success"
while success:
  success,image = vidcap.read()
  cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file
  if cv2.waitKey(10) == 27:                     # exit if Escape is hit
      break
  count += 1

Here i am trying to get the image from video frame by frame and save it as frame1,frame2,frame3

在这里,我试图逐帧从视频中获取图像,并将其保存为frame1,frame2,frame3

2 个解决方案

#1


This is what I use to read in a video and save off the frames:

这是我用来阅读视频并保存帧的方法:

import cv2
import os

def video_to_frames(video, path_output_dir):
    # extract frames from a video and save to directory as 'x.png' where 
    # x is the frame index
    vidcap = cv2.VideoCapture(video)
    count = 0
    while vidcap.isOpened():
        success, image = vidcap.read()
        if success:
            cv2.imwrite(os.path.join(path_output_dir, '%d.png') % count, image)
            count += 1
        else:
            break
    cv2.destroyAllWindows()
    vidcap.release()

video_to_frames('../somepath/myvid.mp4', '../somepath/out')

#2


This is my code for get image from video with opencv

这是我使用opencv从视频中获取图像的代码

import cv2
print(cv2.__version__)
vidcap = cv2.VideoCapture("Malar.mp4")
print vidcap.read()
success,image = vidcap.read()
count = 0
success = True
while success:
  success,image = vidcap.read()
  print 'Read a new frame: ', success
  cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file
  count += 1

#1


This is what I use to read in a video and save off the frames:

这是我用来阅读视频并保存帧的方法:

import cv2
import os

def video_to_frames(video, path_output_dir):
    # extract frames from a video and save to directory as 'x.png' where 
    # x is the frame index
    vidcap = cv2.VideoCapture(video)
    count = 0
    while vidcap.isOpened():
        success, image = vidcap.read()
        if success:
            cv2.imwrite(os.path.join(path_output_dir, '%d.png') % count, image)
            count += 1
        else:
            break
    cv2.destroyAllWindows()
    vidcap.release()

video_to_frames('../somepath/myvid.mp4', '../somepath/out')

#2


This is my code for get image from video with opencv

这是我使用opencv从视频中获取图像的代码

import cv2
print(cv2.__version__)
vidcap = cv2.VideoCapture("Malar.mp4")
print vidcap.read()
success,image = vidcap.read()
count = 0
success = True
while success:
  success,image = vidcap.read()
  print 'Read a new frame: ', success
  cv2.imwrite("frame%d.jpg" % count, image)     # save frame as JPEG file
  count += 1