matlab aviobj,MATLAB AVI 视频读取处理
MATLAB AVI 視頻讀取處理
1、用matlab讀取avi視頻(只能讀一定壓縮各式的avi 電影,這是因為avi視頻文件的編碼
有很多,而matlab只支持部分編碼格式。可見
http://www.doczj.com/doc/4ae6c6222af90242a895e5fd.html/IdoIwill/article/details/2125838)
aviinfo('d:\abc.avi');
%顯示存在d 盤文件abc.avi 的信息,在matlab2010 版本中,該函數可以換成mmreader
mov=aviread('abc:.avi'); %讀入電影abc.avi
movie(mov); %放映電影
2、將avi視頻轉成圖片序列
mov=aviread('d:\abc.avi'); %讀入
Vframes=size(mov,2); %讀取視頻的幀數,mov 為1*1179 struct,struct就是第4點所介紹的
for i=1: Vframes
strtemp=strcat('d:\轉換的圖片\',int2str(i),'.','jpg'); %將每幀轉成.jpg 的圖片
imwrite(mov(i).cdata(:,:,), mov(i).colormap, strtemp); % 把圖像寫入磁盤
end
3、讀取avi視頻第index幀有三種使用方式(不適用于索引圖):
第一種:mov=aviread(filename); % 讀入視頻
frame=mov(index); %讀取avi 文件的第index 幀圖像;
img = frame.cdata; % 讀取圖像的顏色信息
第二種:frame = aviread(filename, index);
img = frame.cdata;
第三種:mov = aviread(filename);
frame = mov.cdata;
img = mov{index};
例:%讀取第一幀圖像
mov = aviread('highwayI_raw.AVI'); frame=mov(index); imshow(frame.cdata);
4、讀取avi視頻第index幀圖像后,所儲存幀格式是一個結構體(struct),該結構體有兩個元素:cdata 和colormap
例:
frame = aviread('highwayI_raw.AVI', i);
frame.cdata 表示了一個數據數組,彩色圖像就是3 維的,灰度圖像就是2 維的。也就是相當于I=imread(‘abc.jpg’)后的數組I
frame.colormap 見(help aviread)
%%%%%了解了以上四點,處理視頻文件就可以相當于圖像文件一樣處理了%%%%
總結
以上是生活随笔為你收集整理的matlab aviobj,MATLAB AVI 视频读取处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022上半年网剧/电视剧热榜发布:《梦
- 下一篇: daconfig.exe是什么进程 da