圖像的數字表示和讀寫操作(MATLAB)

圖像的數字表示

一副圖像可以看成是空間各個座標點的光強度I的集合,其普遍數學表達式爲

I = f(x,y,z,λ,t)

其中x,y,z是空間座標,λ是波長,t是時間, I是光點(x,y,z)的強度。
如果衣服圖像具有上面的五個屬性,那麼我們可以認爲這幅圖像表示一副運動的,彩色的三維的圖像。

需要注意的是

  • 對於靜止圖像,I與t無關,t=0,其數學表達式爲 I = f(x,y,z,λ)

  • 對於單色圖像或者說灰度圖像,波長λ是常數,其數學表達式爲 I = f(x,y,z,t)

  • 對於平面圖像,即二維圖像,I與座標Z無關,其數學表達式爲 I = f(x,y,λ,t)

  • 對於一幅平面靜止灰度圖像,數學表達式爲I = f(x,y)
    二維函數,x和y是平面座標,I在任何座標點(x,y)處的振幅稱爲圖像在該點的亮度

MATLAB讀取圖像

使用函數imread可以將圖像讀入,
語法爲Imread('filename’),其中filename用單引號括起來,filename是一個含有圖像文件全名的字符串。
舉例:將JPG格式的lena圖像讀入圖像數組I.

I= imread(‘lenagray.jpg’);

對於Imread函數,當filename中不包含任何路徑信息時,imread會從當前目錄中尋找並讀取圖像文件。要想讀取指定路徑中的圖像,最簡單的辦法就是在filename中輸入完整的或相對的路徑。比如:

I = imread(‘D:\myimages\lenagray.jpg’); 讀取的是驅動器D上myimages的文件夾中的lenagray這幅圖像文件。

MATLAB顯示圖像

imshow(I)命令將圖像在matlab環境中顯示出來,其中I是上面實例化的對象。

imshow(I)

基本函數imshow()

imshow(f,G):其中f是一個圖像數組,G是顯示該圖像的灰度級數,如果G省略,則默認的灰度級數是256。

imshow(f,[low,high]): 將所有小於等於low的值設置爲黑色,所有大於等於high的值設置爲白色。介於low和high之間的值將以默認的級數顯示爲中等亮度

imshow(f,[ ]): 將變量low的值設置爲數組f的最小值 ,將變量high的值設置爲數組f的最大值 。

圖像的寫入操作

1.圖像寫入——imwrite(A,filename,fmt)

把圖像 A 按照fmt指定的格式寫入圖像文件filename

2.提取圖像文件信息——imfinfo(filename, fmt)

•imfinfo函數返回一個結構info,它反映了該圖像的各方面信息,其主要數據包括:文件名(路徑)、文件格式、文件格式版本號、文件的修改時間、文件的大小、文件的長度、每個像素的位數(BitDepth)、圖像的類型(ColorType)、顏色表矩陣(Colormap)等等。

圖像數組的行數和列數

函數size可給出一幅圖像的行數和列數。

Size(I)

得到結果:Ans = 131 131

如果要自動獲取一幅圖像的大小時,可以用函數[M,N] = size(I);該語法返回圖像的行數M和列數N。

圖像的附加信息

函數whos可以顯示一個數組的附加信息。例如,語句

Whos I

其中返回的uint8指的是一種matlab數據類型,表示無符號8比特整數,範圍爲0-255.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章