【matlab】使用VideoReader提取视频的每一帧,不能用aviread函数~
2024-08-26 05:18:47
这个问题是matlab版本问题,已经不用aviread函数了~
VideoReader里面没有cdata这个函数!
MATLAB不支持avireader了,
而且没有cdata这个属性了,详情去官网
http://www.mathworks.cn/cn/help/matlab/ref/videoreaderclass.html
cdata 是MATLAB里存放图像数据的一个矩阵,你可以使用get语句去得到他的句柄,然后做相应的图像处理。
------------------------------------------------
以前:使用aviread:(现在不用这种了)
整段程序示例一:
avi格式视频的读取和显示(Matlab代码)
cdata: M x N x 3 的矩阵用来表示真彩色的图像
clear data
disp('input video'); % 显示 "input video"
avi = aviread('samplevideo.avi'); % avi: MATLAB movie structure
video = {avi.cdata}; % cdata: M x N x 的矩阵用来表示真彩色的图像
for a = :length(video) % length(video)表示这段视频的帧数
imshow(video{a}) %按帧数顺序显示图像
drawnow;
end
--------------------------------------
整段程序示例二:
avi格式视频的读取和倒放(Matlab代码)
clear data
disp('input video'); % 显示字符串 "input video",disp功能类似于c语言中的print;java语言中的System.out.println();
avi = aviread('samplevideo.avi'); % avi: MATLAB movie structure
video = {avi.cdata}; % cdata: M x N x 的矩阵用来表示真彩色的图像
for a = length(video) :-: % length(video)表示这段视频的帧数
imshow(video{a}) %按帧数倒序显示图像
drawnow;
end
以后应该用:VideoReader!
现在:使用VideoReader提取视频的每一帧~
fileName = 'D:\Work\car.avi';
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames; % 读取视频的帧数
for i = : numFrames
frame = read(obj,i); % 读取每一帧
imshow(frame); %显示每一帧
imwrite(frame,strcat(num2str(i),'.jpg'),'jpg'); % 保存每一帧
end
最新文章
- 物联网实验4 alljoyn物联网实验之手机局域网控制设备
- .Net组件程序设计之线程、并发管理(一)
- 用JqueryUI的Dialog+IFrame实现仿模态窗口效果
- mysql时间加减函数
- jquery常用函数与方法
- 关于c++操作符的优先级
- 【linux】spinlock 的实现
- python语法笔记(六)
- 转载:T-SQL语句大全
- Protocol Buffer详解
- 济南学习 Day 2 T3 pm
- HDOJ-1042 N!(大数乘法)
- PHP学习笔记5-类的继承/方法重写
- ATM机运行代码
- 浅谈前端中的mvvm与mvc
- JavaScript 功能类 Url.js
- 相片后期处理,PS调出温暖的逆光美女
- leetcode — search-insert-position
- mysql数据库 详解 之 自学成才1
- 斐波那契数列的5种python实现写法