python opencv 读取和保存(写入)指定路径下的图片和视频文件


  • python 读取指定路径下的图像和视频文件

  1. OpenCV读取图片:cv2.imread(path);
  2. OpenCV读取视频::使用VideoCapture类和read()函数;

打开指定路径下的视频文件:cap =cv2.VideoCapture(path)
读取每一帧:flag,frame = cap.read()

举个栗子----打开视频并读取每一帧图片,将视频转换为4维的矩阵:

def load_video(video_filename):
    cap=cv2.VideoCapture(video_filename)#通过VideoCapture函数对视频进行读取操作 打开视频文件
    if cap.isOpened():
    	 print("正确打开视频文件")
    else:
         print("没有正确打开视频文件")
    frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
    width, height = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = int(cap.get(cv2.CAP_PROP_FPS))
    video_tensor=np.zeros((frame_count,height,width,3),dtype='float')
    while cap.isOpened():
        flag,frame=cap.read()#读取每一帧图片 flag表示是否读取成功 frame是图片
        if flag is True: #if flag == True:
            video_tensor[x]=frame
        else:
            break
    return video_tensor,fps

关于怎样进入到指定路径,可以看这篇文章

https://blog.csdn.net/love_withyou/article/details/99441666


  • python 保存(写入)指定路径下的图像和视频文件

  1. OpenCV将图片写入到指定路径中:cv2.imwrite(path,frame);
  2. OpenCV将每一帧图片写入到视频中, 需要指定视频的格式, 使用VideoWriter类和write()函数;
    VideoWriter类写入视频时, 需要提供路径, 格式, 码率(fps), 帧的尺寸等参数;

举个栗子:

def save_video(video, fps, save_filename='media/output.avi'):
    fourcc = cv2.VideoWriter_fourcc(*'MJPG')
    writer = cv2.VideoWriter(save_filename, fourcc, fps, (video.shape[2], video.shape[1]), 1)
    for x in range(0, video.shape[0]):
        writer.write(cv2.convertScaleAbs(video[x]))
发布了22 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/love_withyou/article/details/99645344