圖像的數字表示
一副圖像可以看成是空間各個座標點的光強度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.