數字圖像入門·用數字記錄顏色

數字圖像入門·用數字記錄顏色

《數字圖像入門》是SOOMAL 13年前啓動的科普文章系列共計十餘篇,在公衆號上沒發表過,現在看還行並沒有完全過時,稍微改改還能看,加一點流行詞彙,討好一下年輕人,不知道這樣city不city。

頤和園雪景


頤和園雪景-局部放大

打開任意一張數碼照片,將它儘量放大。會看到很多彩色的小方塊,這些小方塊被稱爲像素,它是構成圖像最基本的元素。像素的英文名Pixel,它是一個合成詞匯,由Picture[圖像] 和 Element[元素]兩個單詞合成。

我們常常用1024X768、1600X1200這樣的表達式來描述圖片的尺寸,例如1600X1200,表示其橫向有1600個像素,縱向1200個像素,此圖一共有1920000個像素構成。數碼相機或手機的宣傳資料中,常常提到該相機該攝像頭具有有效像素XXX萬,即表示它最大能拍攝XXX萬像素構成的數字圖像。一張圖片包含的像素越多,它的信息量就越大,理論上,不存在最大的數字圖片,但最小的數字圖片可以由單個的像素構成。

像素可以是紅色的、紫色的、藍色的、綠色的、白色的……它可以有數以千萬甚至更多種變化,那麼像素是如何被存儲和表達的呢?依靠的是數字

爲了記錄圖像,首先需要對光的強度進行量化,通常的情況是將光由最暗到最亮量化爲256級。

          

          

我們知道,光學的三原色爲紅綠藍,這三種光可以合成其他任意顏色,例如紫色光、橙色光等等。因此只要記錄三原色的亮度,就可以記錄下色彩的變化。紅綠藍三種光的亮度分別被量化爲256級,都爲0時,表現爲黑色,都爲255時,就是白色。理論上,這種記錄方式,可以記錄下至多16777216種不同的顏色,這些顏色可以用數字來記錄,例如用0來表示黑色,用16777215來表示白色。量化後,用數字表示對應像素的顏色,即數字圖像最基礎的構成原理。    

前面提到,光的量化級數爲256級,這正好是2的8次方。紅綠藍三種光分別量化爲256級,能產生2的24次方[16777216]種變化,這種圖像又被稱爲24位[bit]圖像。

並不是所有的圖像都是24位,黑白圖像只有8位,即0-255的256種變化。其實,更準確的稱呼不是黑白圖像,而是灰度圖像,這種圖像只記錄合成光的亮度值,而不記錄三原色光的亮度值,24位圖像可以轉換爲灰度圖像,會丟失色彩信息,但保留合成光的亮度信息。灰度圖像也可以轉換成24位圖像,但並不會恢復顏色,灰度圖像中亮度爲255的像素,轉換後會記錄爲紅綠藍均爲255的值,依次類推。

不是所有的8位圖像就一定是灰度圖像,它也可以是彩色的。網絡上常用的GIF動圖,就是一種彩色的8位圖像。它最多允許256種色彩存在,因此表現力會非常有限,爲了讓色彩表現更加豐富一些,GIF圖像可以允許建立一個調色板,在調色板中存儲使用最多的顏色值,每一種顏色值都有一個0-255之間的索引號[Index],像素記錄的是索引號,通過索引號,可以檢索到顏色值。這張調色板的示意圖,就是《頤和園雪景》那張轉換爲GIF後產生的。

你如果是修圖愛好者,會發現還有一種32位色圖像。它是在24位圖像的基礎上,增加了一個透明的概念,即像素的的透明度,其變化範圍也是8位,即256級。這個透明層主要用於圖像合成時的運算,其色彩記錄範圍依然是24位。

隨着存儲成本和運算成本的持續下降,人們對色彩的要求越來越高,也因此開始出現48位圖像,即每一種原色都進行65536級的亮度量化,48位圖像理論上可以記錄281474976710656種顏色,記錄範圍要高於24位圖像千萬倍。

不管是多少位,其差別主要是信息記錄能力上有差異,其核心記錄方式是基本相同的[矢量圖像另說],即用數字記錄像素的顏色以及像素的排列,並形成圖像,所以,數字圖像本質上就是一個數字矩陣。