2020年1月2日 星期四

06360293 楊哲銓 HW3

色階調整

色階調整將原圖的R、G、B值依比例做範圍調整,改變圖片中顏色的飽和度。

線性調整

在這邊不先讀取圖片中的像素,因為每種顏色可能重複出現,若每個像素都計算一次可能導致計算量太大、程式運行過久。
因此這邊先執行線性轉換,轉換前範圍為old_left~old_right、轉換目標範圍為new_left~new_right。
圖中newPixel為一大小為256的陣列,因R、G、B範圍皆為0~255,因此不需要分別為三色做轉換,只需要將原始範圍轉換成新範圍即可以應用在R、G、B三色。


圖中公式


將input在原範圍中做比例計算,將計算出的比例移至新範圍,使用同比例求出output。

例如要將0~255中的10轉換為20~200的範圍,將範圍帶入公式中:


計算出10在0~255中佔了多少比例,依同比例在20~200中求出新的output作為轉換值。



上圖為將0~255轉換為128~255的結果示範,圖片整體顏色飽和度上升、圖片整體變亮。



圖中X軸為原數值、Y軸為轉換後數值,顯示將0~255轉換為128~255的線性轉換圖表。


曲線調整

與線性調整的方法相同,先將0~255轉換為新的值,再分別應用在R、G、B三色。
這邊實作曲線調整的前提為範圍必須0~255,並給定一值(如:(100, 150),表100轉換後會變成150)。
有了(0, 0)、(x, y)、(255,255)三個點,可以依數學方法求出經過此三點的曲線函數。

曲線公式:

分別將(0, 0)、(x, y)、(255,255)帶入可以求得a、b、c三值,得到一完整曲線方程式。


上圖為將(0, 0)、(100, 150)、(255,255)帶入的結果示範。



圖中X軸為原數值、Y軸為轉換後數值,顯示經過(0, 0)、(100, 150)、(255,255)三點的曲線轉換圖表。

結論

色階轉換主要是針對圖片的飽和度做調整,若圖片本身對比度就不足,則就算提升了飽和度,圖片依舊不清晰。

如下圖所示:

上方結果的線性轉換圖表:

沒有留言:

張貼留言