Matlab 处理avi视频文件为单帧任意大小图片

主要是imresize()这个函数的用法。

上代码:

clc;
clear;
video=mmreader('D:\videotest\Video 1.avi');
nFrames = video.NumberOfFrames;   %得到帧数
H = video.Height;                 %得到高度
W = video.Width;                  %得到宽度
Rate = video.FrameRate;
% Preallocate movie structure.
mov(1:nFrames) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);

%获取每一帧
for i = 1:nFrames
     mov(i).cdata = read(video,i);
     P = mov(i).cdata;
     %imresize() []中格式要求:[高 宽] 
     Q = imresize(P,[720 960]);
     disp('当前播帧数:'),disp(i);
     imshow(P),title('原始图片');%显示原始图片

     if i<10
     imwrite(Q,strcat('0000',int2str(i),'.jpg'),'jpg');%写入文件中
     else if i>=10 & i<100
     imwrite(Q,strcat('000',int2str(i),'.jpg'),'jpg');
     else
     imwrite(Q,strcat('00',int2str(i),'.jpg'),'jpg');
         end
     end
end
时间: 2024-08-08 22:08:36

Matlab 处理avi视频文件为单帧任意大小图片的相关文章

视频修复工具修复损坏avi视频文件

视频损坏该怎么办,用视频修复工具呀,但是这么多的数据恢复工具,到底哪款可以修复出我要的视频文件呢? 这应该是很多遇到视频损坏的客户都会遇到的问题,那么到底该怎么解决呢? 今天甲驭科技数据恢复中心小编给大家推荐一款合适的视频修复工具,让你用的放心,用的满意. 来自湖北十堰的王小姐通过网络搜索联系到了甲驭科技数据恢复中心,她就遇到了比较麻烦的问题.她是做后期编辑处理的,这次主要是存储在个人笔记本电脑中的众多已经编辑好的avi视频文件不知道什么原因都损坏了无法打开了,但是原片又没有了,而且有些视频文件

3、写入AVI视频文件

创建一个写入设备以便逐帧将视频流写入视频文件,用函数cvCreateVideoWriter()实现.当输出设备被创建以后,调用cvWriterFrame()逐帧将视频流写入文件.最后调用cvReleaseVideoWriter()来释放资源. 涉及函数: 1 IplImage* cvQueryFrame( CvCapture* capture ); 从摄像头或者文件中抓取一帧,并返回这一帧,返回的图像不可以被用户修改或者释放.cvQueryFrame使用已经在CvCapture结构中分配好的内存

opencv-写入AVI视频文件

#include <cv.h> #include <highgui.h> int main(int argc, char **argv) { CvCapture* capture = NULL; capture = cvCreateFileCapture("红动中国设计网视频素材2185.avi"); if (!capture) return -1; //获取视频的第一帧 并存在bgr_frame IplImage *bgr_frame = cvQueryFra

[zt]OpenCV如何获取视频当前的一帧图像

(OpenCV读取视频.OpenCV提取视频每一帧.每一帧图片合成新的AVI视频)CvCapture 是视频获取结构 被用来作为视频获取函数的一个参数 比如 CvCapture* cap; IplImage* cvQueryFrame( cap ); 从摄像头或者文件中抓取并返回一帧———————————————————————— Opencv读取视频代码 #include "stdafx.h" #include"highgui.h" int main(int ar

【学习ffmpeg】打开视频文件,帧分析,并bmp保存关键帧

http://www.tuicool.com/articles/jiUzua http://blog.csdn.net/code_future/article/details/8646717 主题 FFmpeg 任务:需要把一个视频文件的每一帧提取出来,每帧存储成单独的文件. 以前用Matlab处理过这个问题,可是感觉比较慢,而且最近正在逐步转向使用开源的东西.因此搜到ffmpeg这个好东西. ffmpeg可用来处理视频文件的提取和各种转换,跨平台,官网上有Linux,WINDOWS和MAC版本

matlab读写图片,读取图像序列,读取AVI视频

介绍使用matlab读写图片,读取图像序列,读取AVI视频的方法: 一. 读写图像 使用matlab读一幅图像,并另存 1 % Filename: ImageReadWrite 2 clc; 3 clear; 4 i = imread('D:\\aa3.bmp');%打开D:\\aa3.bmp图像 5 imshow(i); %显示图像 6 imwrite(i, 'D:\\aa4.jpg');%将图像另存为D:\\aa4.jpg 使用matlab读写还可以进行图片格式转换,将jpg图像转换成256

Matlab从一系列图片导出AVI视频,导出GIF动图

平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj = VideoWriter('out.avi'); % 输出AVI文件名字,out.avi writerObj.FrameRate = 25; % 帧率,25fps writerObj.Quality = 90; % 质量,百分比,90% open(writerObj); for i = 1:1:

CentOS 6.4 播放avi格式的视频文件

1. 需要先进行相关的yum源的导入: rpm -Uhv http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm 2.安装相关软件可能需要的依赖关系,可能有错误,不用理它:   yum install libgcc gcc gcc-c++ libstdc++ libstdc++-develcompat-glibc compat-libstdc++-33 libev

关于MATLAB提取MP4视频帧时候,跨帧取速度会慢

项目需要将视频中每十帧抽取一帧,实际操作中发现,如果按照这样来写代码 vid = VideoReader(namestr);for ii = 1 : 10 : vid.NumberOfFrames frame = read(vid, ii); imwrite(frame, xxx, 'jpg'); end 设定循环变量为每10,然后直接从视频对象中read出图像帧,跑起来发现取一帧少则一秒 多则四五秒 这非常反直觉,因为大家逐帧抽取的时候都是一秒能抽好几百帧. 仔细想一想其实MP4作为一种压缩视