MATLAB编程:逐帧读取视频并转换为图片格式

Posted 汤姆和佩琦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB编程:逐帧读取视频并转换为图片格式相关的知识,希望对你有一定的参考价值。

MATLAB编程:简易读取分割存储 tif 格式图片


前言

  本博主使用的MATLAB版本是2020b,这个版本可以使用许多有趣的扩展APP,本节将会对如何将视频逐帧进行解析并保存需要帧的信息为图片,这种方式也省去自己忘却,剩下百度时间,喜欢的朋友点赞收藏哦!


提示:以下是本篇文章正文内容,下面案例可供参考。

一、介绍

主要的知识点有两个:
1)如何读取读取视频;2)如何确定视频帧信息并进行保存。
下面将分点简要介绍:

  1. 使用 VideoReader() 读取视频文件,此函数功能很强大,大部分视频格式都可以进行读取;
  2. 使用while循环开始各帧内容确定,设置图片的路径和名称,可以参考这篇: MATLAB编程:for循环读取文件家内图片数据 查看一下,其实挺简单的 主要是 num2str函数要灵活运动,可以使用strcat()函数 或 直接用中括号 [] 进行拼接。
  3. imwrite() 函数负责保存帧内容为图片,这里需要提一下,变量 i 负责调控所选取帧的顺序,read函数读取需要保存的(第i)帧序号。

二、MATLAB实现

  
示例1:
给出的简单示例 读取同文件夹下的JEB191148.MovieS1.mp4文件,逐帧读取视频内容,并将内容保存在jpg文件夹下,文件名称为 D00001.jpg D00002.jpg …

clc
clear

v = VideoReader('JEB191148.MovieS1.mp4')
i = 1;
while 1
    if ~hasFrame(v)
        break;
    end
    frame = read(v,i);
    temp=strcat('jpg\\D',num2str(i,'%05d'),'.','jpg');
    imwrite(frame,temp);
    i = i+1;
end

三、总结

  本篇主要是MATLAB中逐帧读取视频并选取所需帧内容进行保存,下回就不去百度了,自己看自己的笔记,😄!喜欢的朋友点赞收藏哦。

python 视频逐帧保存为图片

import cv2
import os
def save_img():
    video_path = rF:	estvideo1/
    videos = os.listdir(video_path)
    for video_name in videos:
        file_name = video_name.split(.)[0]
        folder_name = video_path + file_name
        os.makedirs(folder_name,exist_ok=True)
        vc = cv2.VideoCapture(video_path+video_name) #读入视频文件
        c=0
        rval=vc.isOpened()

        while rval:   #循环读取视频帧
            c = c + 1
            rval, frame = vc.read()
            pic_path = folder_name+/
            if rval:
                cv2.imwrite(pic_path + file_name + _ + str(c) + .jpg, frame) #存储为图像,保存名为 文件夹名_数字(第几个文件).jpg
                cv2.waitKey(1)
            else:
                break
        vc.release()
        print(save_success)
        print(folder_name)
save_img()

 

以上是关于MATLAB编程:逐帧读取视频并转换为图片格式的主要内容,如果未能解决你的问题,请参考以下文章

如何用格式工厂把视频转化为一张一张的图片

将 H264 视频转换为原始 YUV 格式

MATLAB对视频文件的读取与格式转换

使用Python+Opencv从摄像头逐帧读取图片保存在本地

matlab怎么读取一幅图像,并转换为灰度图像

matlab怎么读取一幅图像,并转换为灰度图像