2018年1月11日 星期四

04360455 張力仁 HW05

這次我們介紹如何自製調色盤以及RGB與YUV的關係,首先調色盤可以用RG、RB、GB平面來實現,所謂的RG平面就是在B固定的情況下平面上有255*255大小的pixel,分別由RG(0, 0)、RG(0, 1) ... RG(1, 0)、RG(1, 1) ... RG(255, 255)組成,然後再透過設定B的值即可作為調色盤使用。
左圖為GB平面、中間為RB平面、右圖為RG平面
上圖我利用一個滑軸來讓使用者調整固定的該顏色值,調整後即可看到對應的平面,在平面上用滑鼠點擊後即可設定畫筆的顏色,這功能是不是跟我們常見的調色盤一樣呢?現在我們試著調整滑軸來看看對應的平面長什麼樣子吧。


同樣都是GB平面,透過調整滑軸原本R的值從0變成100再變成255,對應的平面如上圖,不管是哪張圖只要選擇了GB即可確定畫筆的顏色,接來嚇我們試著選擇顏色並看看畫筆的顏色是否真的如我們所想的顏色相同。


果真出現了我們所選的顏色,如此一來我們的調色盤就做好了。
接下來介紹YUV,YUV也是一種描述顏色的方法,Y代表著亮度,UV則代表顏色,這裡我們用沿用上面所講平面的方法,將Y當定值去畫出UV平面,我們來看看UV平面長什麼樣子。


上圖為3種UV平面,因為Y為亮度,當Y變大時明顯的我們的UV平面看起來更亮,接下來我們來討論一下如何在RGB和YUV之間做轉換。
Y的範圍在[0, 1],U的範圍在[-0.436, 0.436],V的範圍在[-0.615, 0.615],因為處理小數點的範圍比較麻煩,我們透過公式將他轉成[0, 255]
補充 : >>8 = / 2^8 = / 256

因為你在轉成RGB時有可能會算出超過255或小於0的素質,
clip代表著如果值超過255就設定為255,若小於0就設定為0
知道如何轉換後UV平面就是一樣UV(0, 0)、UV(0, 1) ... UV(255, 255),並且已知Y則可以算出該pixel對應的RGB,這樣一來就可以畫出UV平面囉。
如果想要用UV平面去調整圖片顏色的話首先將原本圖片轉成灰階後得到亮度值,然後當你點了UV值時依照上面的公式將對應的YUV轉成RGB並把該值設定為新的pixel的顏色,讓我們來看看會友什麼效果吧。



如此一來就可以透過點擊UV平面來將你的圖片改成你想要的顏色囉。


沒有留言:

張貼留言