MATLAB编程:逐帧读取视频并转换为图片格式
Posted 汤姆和佩琦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB编程:逐帧读取视频并转换为图片格式相关的知识,希望对你有一定的参考价值。
MATLAB编程:简易读取分割存储 tif 格式图片
前言
本博主使用的MATLAB版本是2020b,这个版本可以使用许多有趣的扩展APP,本节将会对如何将视频逐帧进行解析并保存需要帧的信息为图片,这种方式也省去自己忘却,剩下百度时间,喜欢的朋友点赞收藏哦!
提示:以下是本篇文章正文内容,下面案例可供参考。
一、介绍
主要的知识点有两个:
1)如何读取读取视频;2)如何确定视频帧信息并进行保存。
下面将分点简要介绍:
- 使用 VideoReader() 读取视频文件,此函数功能很强大,大部分视频格式都可以进行读取;
- 使用while循环开始各帧内容确定,设置图片的路径和名称,可以参考这篇: MATLAB编程:for循环读取文件家内图片数据 查看一下,其实挺简单的 主要是 num2str函数要灵活运动,可以使用strcat()函数 或 直接用中括号 [] 进行拼接。
- 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 = r‘F: 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编程:逐帧读取视频并转换为图片格式的主要内容,如果未能解决你的问题,请参考以下文章