Matlab 使用技巧收录(一)

%%%%%%%%%利用winopen打开应用程序%%%%%%

cd d:  %进入d盘

a = ls  %读取当前盘下的所有文件到a中

winopen(a(3,:))  %a中第三个文件名的内容

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%读取图片%%%%%%%%%%%%%%

[Filename,Pathname]=uigetfile({'*.jpg';'*.bmp';'*.gif'},'打开图片');

str=[Pathname Filename];%图片路径

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

%%%%%%%%%%%%%%%%%%%%%%

Matlab进行视频分析,首先要能读取单帧图片,然后对图片进行处理分析。尽管这个功能很简单,可是在不同电脑上第一次操作起来,我相信大多数都不能正确播放。

首先看源码:

clc;

clear;

%% this to read avi by using mmread to getevery 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。下载:http://down.51cto.com/data/622815

2,有的安了依旧播放不了视频,需要安装ffdshow解码器。

3,还有的文件会依旧播放不了,考虑是否是非avi文件转换avi文件中,转换器的问题。可以换个转换器,常见的有狸窝,格式工厂等。

4,有的视频文件,原文件播放正常,但到matlab里也能播放但就是奇慢无比,这是转换过程中把帧率设的慢了,需要重新转换,在转换工具的设置里设帧率。



Matlab video2img.m


[Filename,Pathname]=uigetfile({'*.avi';'*.rmvb';'*.mp4'},'打开视频');
str=[Pathname Filename];%图片路径
video = VideoReader(str);
nFrames = video.NumberOfFrames;   %得到帧数

H = video.Height;     %得到高度

W = video.Width;      %得到宽度

Rate = video.FrameRate;

% Preallocate movie structure.
mov = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]);
%read one frame every time
for i = 1:nFrames
   mov.cdata = read(video,i);
   mov1.cdata = read(video,i+1);
    P= mov.cdata;
    save_name = ['image_' num2str(i) '.bmp'];
    imwrite(P,save_name);
end




你可能感兴趣的:(matlab)