MATLAB | 读取视频并保存帧图像
一、视频文件的读取及帧图像的保存
%% Get frames from video% Author: 羽墨志(https://yumozhi.com/)% Date : 2022-06-01%% Introduction% 读取视频并保存视频帧图像到指定目录v_pathname = 'D:\Kevin\GitSyncdisk\Video\';
v_filename = 'map.mp4';
f_pathname = 'D:\Kevin\GitSyncdisk\Video\Frame\'; % 目录需要预先创建
f_filename = 'map_frame_'; % 图片文件名的前缀,可以根据自己喜好自行定义height = 480;
width = 640;v = VideoReader([v_pathname, v_filename]); % 方式一
% v = VideoReader(strcat(v_pathname, v_filename)); % 方式二
% v = VideoReader(sprintf('%s%s',v_pathname, v_filename)); % 方式三
% v = VideoReader('D:\Kevin\GitSyncdisk\Video\map.mp4'); % 方式四n_frame = 0;while hasFrame(v)frame = readFrame(v);gray_img = rgb2gray(frame); % 转换为灰阶图像gray_img = imresize(gray_img, [height, width], 'bilinear'); % 调整图像大小n_frame = n_frame + 1;% 方式一% imwrite(gray_img, [f_pathname, f_filename, num2str(n_frame), '.jpg']);% 方式二% imwrite(gray_img, strcat(f_pathname, f_filename, num2str(n_frame), '.jpg'));% 方式三imwrite(gray_img, sprintf('%s%s%d%s', f_pathname, f_filename, n_frame, '.jpg'));
end
二、字符串拼接的几种方式
待读取视频的目录结构比较简单,可直接手动拼接后写入,如方式四。有时候为了后续方便,也会根据实际需求将其合理的拆分为几个部分(本文中分为了目录和文件名两个部分),在根据需要进行拼接。对于从视频中读取到的视频帧而言,其数量一般较多,难以为每一幅图像手动构建一个名称后保存,所以需要通过动态拼接的方式生成一系列具有某种规律的文件名,这就意味着图像文件名中一定会包含某些变量,本文中展示了了三种动态拼接字符串的方式:
% 方式一% imwrite(gray_img, [f_pathname, f_filename, num2str(n_frame), '.jpg']);% 方式二% imwrite(gray_img, strcat(f_pathname, f_filename, num2str(n_frame), '.jpg'));% 方式三imwrite(gray_img, sprintf('%s%s%d%s', f_pathname, f_filename, n_frame, '.jpg'));
其中n_frame
即为文件名中包含的变量,与每一幅帧图像是一一对应的。在三种方式中,第三种方式更为灵活,可以添加格式控制来输出对应的数字字符串。例如将数字部分按照4位输出:
sprintf('%04d', var);
值得注意的是,当var的实际宽度大于前面的控制宽度时会按照实际宽度输出。
三、将帧图像转换为灰度图像
gray_img = rgb2gray(frame); % 转换为灰阶图像
四、调整图片的分辨率
本文中利用的是bilinear算法将图片调整到自己想要的大小。
gray_img = imresize(gray_img,[height,width],'bilinear'); % 调整图像大小
MATLAB | 读取视频并保存帧图像相关推荐
- 使用MATLAB读取视频并获取视频信息、分帧保存
题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域.因此,想写博客来记录自己的学习进度.老师安排的第一次任务为:用MATLAB读取视频, ...
- opencv读取视频并保存为图片
1.功能: opencv读取指定文件夹中的视频文件,按照一定的间隔截取某些帧,将这些帧图像连续命名,存储在指定文件夹里. 2.代码如下: (1)IplImage #include <stdlib ...
- matlab读取视频VideoRead用法
声明:转载自博主酌希的博文matlab读取视频VideoRead,原文链接点击打开链接,仅供参考学习. 看到以前matlab中读取视频多使用mmreader等(参考<matlab读取/播放视频的 ...
- matlab读取视频VideoReader类
一个读取视频,显示帧,并保存每一帧 的代码 fileName = 'D:\\mc\\long.avi'; obj = VideoReader(fileName); numFrames = obj. ...
- matlab读取视频videoreader出错解决方法
在用matlab读取视频取帧时遇到以下错误: 我所用的系统是win7,matlab2018a videoreader ERRorcreateing sourcereader reason:不知道的错误 ...
- python(二)进阶之cv2读取视频文件或摄像头,并进行保存帧图像或视频
版本 # 4.5.1 python import cv2 cv2.__version__ 函数 # 参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为视频所在路径, # 例如: ...
- matlab播放 视频帧,MATLAB读取视频并按帧保存
%存第k帧 clc; clear; video_file='D:pictures5.mp4';%读取视频位置 obj=VideoReader(video_file); frame_num=obj.Nu ...
- MATLAB读取视频并按帧保存
%存第k帧 clc; clear; video_file='D:\pictures\5.mp4';%读取视频位置 obj=VideoReader(video_file); frame_num=obj. ...
- Matlab 保存视频每一帧图像
clc; close all; clear all;obj = VideoReader('E:\示例图像\扭曲帧\mat文件\expdata_large.avi');%输入视频位置 numFrames ...
- 解决Python OpenCV 读取视频并抽帧出现error while decoding的问题
解决Python OpenCV 读取视频抽帧出现error while decoding的问题 1. 问题 2. 解决 3. 源代码 参考 1. 问题 读取H264视频,抽帧视频并保存,报错如下: [ ...
最新文章
- 未能创建Microsoft Visual C# 2008 编译器 解决方案【轉】
- Acwing第 5 场周赛【未完结】
- win10任务管理器快捷键_win10系统任务管理器怎么打开
- 【渝粤教育】国家开放大学2018年春季 7397-21T家庭教育咨询与辅导 参考试题
- 前端使用正则表达式获取地址栏URL参数的值并将需要的参数值展示在页面
- LeetCode 7 Reverse Integer(反转数字)
- 五年级计算机教材内容,五年级计算机教学计划
- Windows10 Kafka Docker 集群搭建
- 腾讯IM可以实现聊天信息保存到本地服务器吗
- h5传奇 cqgmb.php,魔兽世界怀旧服狂暴战bwl最新WA字符串集合
- Android 开发之 fill_parent、wrap_content和match_parent的区别
- [译]Flask教程--Cookie
- 数字绘画技术,从数位板到数位屏
- F2FS之磁盘NAT和SIT布局及相关函数分析
- 离散数学总复习精华版(最全 最简单易懂)已完结
- FWT(快速沃尔什变换)
- html5 dreamlive,DREAM LIVE 5th Tour Stargazer即将开演
- 查看路由器地址是否是公网ip
- java 正则 提取数字_java使用正则提取字符串中的数字(例如提取短信中的验证码)详解...
- 17:Oriented R-CNN for Object Detection
热门文章
- win10安装Visual Studio 2019失败
- 华为云盘(华为云空间)免费空间
- 发生在我们身边的灵异事件 - 发生在台湾奇萊山的一些灵异事件
- 使用IIS 共享文件
- Tomcat任意文件读取 文件包含漏洞复现(CVE-2020-1938/CNVD-2020-10487)
- 《炬丰科技-半导体工艺》用于高效显示和通信的无磷白光 LED
- google离线地图制作
- 推箱子c语言代码有注释,C语言代码实现推箱子小游戏
- Excel 标记重复多余项
- [ffmpeg][goav][issues] goav Dictionary crash double free