2018年1月11日 星期四

04360501 林志謙 HW05

色彩模型with C++ Builder 6


我們今天來討論一下RGB和YUV色彩模型
首先是RGB色彩模型


從左到右分別為B=0的RG平面,G=0的RB平面,R=0的GB平面
一張圖從左到右,從上到下分別為0~255



B=255的RG平面,G=255的RB平面,R=255的GB平面


B=128的RG平面,G=128的RB平面,R=128的GB平面
--------------------------------------------------------------------------------------------------------------------------
接下來是比較難的Y(亮度)UV(彩度)
首先從左到右是U,從上到下是V,下面的TrackBar是控制Y(亮度)的
YUV可以透過以上函式轉化成RGB
可以注意到上面有一個clip的呼叫函式,我是寫一個副程式讓他的範圍控制在0~255之間
還有一個要注意的是:當初沒給picture的bitmap設定大小所以一直out of value讓我de了很久
YUV我在上圖的初始範圍都是設定為0~255的
Y = 0.5時,UV所呈現的平面

Y > 0.5,UV所呈現的平面
--------------------------------------------------------------------------------------------------------------------------
接下來我們要透過點擊UV平面上的顏色來更改圖片的顏色




我們以WaterLily.bmp為例
當我們點擊UV平面上的一點時,就拿那一點的UV來更改圖片

一樣透過這個公式,不過值得注意的是
Y不能像上面色彩模型一樣更改
不然會變成純色圖片(當初也是因為這個改了很久)

透過這樣的介紹,我們可以更了解色彩模型和程式之間的關係


沒有留言:

張貼留言