Color Quantization

Color Quantization

降低圖片位元深度(bit depth)的方法。儘管圖片會失真,但還是儘量讓圖片的觀感與原先相仿。

暫無詳細介紹。請看:http://en.wikipedia.org/wiki/Color_quantization

這個問題可想做是:把圖片上的每一種顏色,分別重新設定成新顏色。

Color Quantization: Median Cut Algorithm

Color Quantization: Median Cut Algorithm

讀取圖中所有的像素,置於RGB構成的三維空間當中,然後反覆分割空間,以釐清像素們所聚集的區塊,為Divide and Conquer策略。

分割區塊時,以最長的邊來進行切割,切割點位於該邊方向上、像素們的中位數。確立像素們聚集的區塊後,以每個區塊所含的像素平均值做為該區塊所有像素的新顏色值。

若要降低圖片位元深度成為8,那麼圖片中將會有2^8=256種顏色,切割時就必須切成256種區塊,以獲得256種顏色。

每一次要切割時,都選擇目前所有區塊中最大的區塊,大的定義是:區塊中最長的邊長,其越長者越大。各位也可試著從體積最大者、抑或像素最多者的區塊開始切,看看結果有何不同。

這支程式有點小瑕疵,就是當區塊中的像素少到無法再分割時還會繼續分割。

結果

左圖是24bit原圖,中圖是轉換後的8bit圖,右圖是選中的128種顏色。左圖圖片來源:http://www.csie.nctu.edu.tw/~zlxuan/lena/lenna.html

【待補討論】