人臉識別首先需要獲取識別對象的人臉照片。這些照片在計算機中存儲的常見格式是以“.jpg”結尾的jpg格式文件,下麵以此文件格式為例進行講解。一張彩色照片在計算機中通過RGB三原色顯示色彩,其中,
R表示紅色(Red);
G表示綠色(Green);
B表示藍色(Blue)。
人眼能夠分辨的顏色都可以通過這三類顏色生成,這是三原色的名稱來源。也就是說,通過調整這三種原色的比例,計算機可以存儲和顯示世界上千變萬化的顏色。
這三種顏色的變化範圍一般取為[0,255]。0表示這種原色不存在,而255表示這種原色最強。之所以采用這個範圍,是因為255恰好可以用一個字節來表示,也就是可以用8位的二進製數11111111來表示。按照第二章講的方法可以很方便地使用Python觀察這種對應關係。
In[5]:0b11111111
Out[5]:255
還有一些軟件用“三原色強度/255”這種“比例”來定義顏色。例如,(166,170,15)表示RGB的強度,這表示了圖像上一個點的顏色;如果換作用小數表示的方式,就變成了(0.650 980 392 156 862 8,0.666 666 666 666 666 6,0.058 823 529 411 764 705)。這兩種表示方法給出的點的顏色是一樣的。
一張彩色圖片使用上述表示方式就轉換成了三個表格,這些表格叫作圖片的通道,分別是R通道、G通道、B通道。如果有一個4×4(長×寬)大小的圖片,就一共有16個像素(4×4),每個像素都有三個分量(R,G,B),它們對應的表格如表8-2所示。從表中可以看出,第(1,1)個像素 RGB的強度分別是(187,187,187),第(3,3)個像素RGB 的強度分別是(205,167,187)等。
表8-2 三通道示例
沒有彩色信息的黑白圖像稱為灰度圖像。存儲這種形式的圖片無須RGB通道這樣的三個表格,隻需要一個表示黑白強度的表(矩陣)就可以把它表示出來。這時候0表示純黑,而255表示純白,中間的數值表示該點的灰度介於純黑和純白之間。