close

一般在測試影像處理的演算法時,常會需要將讀取影像檔或是影片檔,在Matlab裡,mmreader是一個通用的影片檔讀取的function,以下我參考Matlab的說明文件,教你如何去使用mmreader

另外,我必需先說明,mmreader只限定在Windows平台上使用。若你是在server(例如Windows Server 2008)平台上,也請注意,你必需先安裝media player

 

Access Video 

 

>> trafficObj = mmreader('traffic.avi')

% traffic.avi影片建立成Object

 

Summary of Multimedia Reader Object for 'traffic.avi'.

 

  Video Parameters:  15.00 frames per second, RGB24 160x120.

                     120 total video frames available.

 

>> Property = get(trafficObj) %物件的特性請參考下表

 

Property =

 

          Duration: 8

              Name: 'traffic.avi'

              Path: 'C:\Program Files\MATLAB\R2008a\toolbox\images\imdemos'

               Tag: ''

              Type: 'mmreader'

          UserData: []

      BitsPerPixel: 24

         FrameRate: 15.0000

            Height: 120

    NumberOfFrames: 120

       VideoFormat: 'RGB24'

             Width: 160

 

>> video = read(trafficObj); % 讀取影片的內容

Warning: The end of file was reached before the requested frames were read completely.  Frames 1 through 119

were returned.

>> implay(video, Property.FrameRate); % 播放影片 (如下圖)

 

implay.JPG

 

 

 

Duration

影片的總長度,以秒計算。

Name

該物件的檔案名稱。

Path

該檔案所存放的完整路徑。

Tag

使用者自訂的標籤名稱。

Type

物件的類別名稱,預設為mmreader

UserData

使用者自行定義的資料,可提供使用者註記物件的資料。

BitsPerPixel

每個pixel所佔的位元數。

FrameRate

每秒所顯示的影像張數。

Height

影像的解析度()

NumberOfFrames

影片所包含的總frame數。

VideoFormat

影片的色彩格式。

Width

影像的解析度()

 

Create a Matlab movie struct 

 

>> readerobj = mmreader('xylophone.mpg') % 建立物件

 

Summary of Multimedia Reader Object for 'xylophone.mpg'.

 

  Video Parameters:  29.97 frames per second, RGB24 320x240.

                     141 total video frames available.

 

>> vidFrames = read(readerobj); % 讀取影片的內容

>> numFrames = get(readerobj, 'numberOfFrames');

>> for k = 1 : numFrames % 轉換成movie結構

    mov(k).cdata = vidFrames(:,:,:,k);

    mov(k).colormap = [];

end

>> movie(mov, 1, readerobj.FrameRate); % 使用movie指令播放影片

 

movie.JPG 

 

Appendix

大家可以參考一下wiki,AVI是一種檔案的存放格式,是由微軟所提出來的。

AVI檔裡面所存放的影像就有很多種格式,例如MPEG4、H264或是未壓縮。

Matlab所支援的壓縮格式並多,你也可以付費使用官方的解碼器,或者

是自己將免費的解碼器弄上去,再不然就是將有壓縮的影片轉成未壓縮。

在XP上,大家可以在點右鍵->內容->摘要-進階,就可以看的影像的資訊了。

如下,大家可以參考一下兩種不同的差別。

 non.JPG

yy.JPG  

avi.JPG  

 

Reference

Detecting Cars in a Video of Traffic

AVI (Audio Video Interleave) WIKI

全站熱搜
創作者介紹
創作者 c39600 的頭像
c39600

My dream. My life.

c39600 發表在 痞客邦 留言(14) 人氣()