matlab读取/播放视频的函数(1)
生活随笔
收集整理的這篇文章主要介紹了
matlab读取/播放视频的函数(1)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 可以用mmreader和 read這兩個(gè)函數(shù)讀取視頻幀
readerobj = mmreader('xylophone.mpg'); vidFrames = read(readerobj); 具體參數(shù)含義幫助文檔里面有。示例: fileName = 'ntia_wfall-qcif_original.avi'; % .avi必須是無(wú)損壓縮的. obj = mmreader(fileName); vidFrames = read(obj);% 讀取所有的幀數(shù)據(jù) numFrames = obj.numberOfFrames;% 幀的總數(shù)for k = 1 : numFrames% 讀取數(shù)據(jù)mov(k).cdata = vidFrames(:,:,:,k);% mov(k)是一個(gè)結(jié)構(gòu)體,mov(k).cdata實(shí)際上就是一個(gè)有RGB的幀mov(k).colormap = []; end movie(mov);% 在matlab中播放視頻
2. 從AVI視頻中提取每一幀,使用 aviinfo,aviread
str='D:\Program Files\MATLAB71\work\1.avi'; info=aviinfo(str); fum=info.NumFrames; for i=1:fummov=aviread(str,i);I=mov.cdata;J=rgb2gray(I);imwrite(J,strcat('F:\shiyan\work\',int2str(i),'.bmp'),'bmp'); end
3. Matlab下讀取視頻文件并進(jìn)行基于鄰幀差法的視頻目標(biāo)運(yùn)動(dòng)檢測(cè)
videoObj = mmreader('highwayII_raw.avi');%讀視頻文件 nframes = get(videoObj, 'NumberOfFrames');%獲取視頻文件幀個(gè)數(shù) for k = 1 : nframescurrentFrame = read(videoObj, k);%讀取第i幀subplot(1,2,1),imshow(currentFrame);grayFrame = rgb2gray(currentFrame);%灰度化if(k==1)grayFrame_1 = grayFrame;enddifgrayFrame= grayFrame - grayFrame_1;%鄰幀差grayFrame_1 = grayFrame;subplot(1,2,2),imshow(difgrayFrame); end
總結(jié)
以上是生活随笔為你收集整理的matlab读取/播放视频的函数(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 人眼中亮斑的检测、定位和去除
- 下一篇: matlab读取/播放视频的函数(2)