本文共 807 字,大约阅读时间需要 2 分钟。
Matlab进行视频分析,首先要能读取单帧图片,然后对图片进行处理分析。尽管这个功能很简单,可是在不同电脑上第一次操作起来,我相信大多数都不能正确播放。(环境:xp+Matlab2008a)
首先看源码:
clc; clear; %% this to read avi by using mmread to get every frame video = mmreader('D:\My Documents\MATLAB\森林火灾\My\fire.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',[]);
%read one frame every time for i = 1:nFrames mov(i).cdata = read(video,i); P = mov(i).cdata; disp('当前播帧数:'),disp(i); imshow(P),title('原始图片');% P2=rgb2gray(P); end
1,很多电脑上都播放不了。这是因为没安解码器,需要安xvid。下载:
2,有的安了依旧播放不了视频,需要安装ffdshow解码器。
3,还有的文件会依旧播放不了,考虑是否是非avi文件转换avi文件中,转换器的问题。可以换个转换器,常见的有狸窝,格式工厂等。
4,有的视频文件,原文件播放正常,但到matlab里也能播放但就是奇慢无比,这是转换过程中把帧率设的慢了,需要重新转换,在转换工具的设置里设帧率。
转载地址:http://cyhfi.baihongyu.com/