顯示具有 HW05 標籤的文章。 顯示所有文章
顯示具有 HW05 標籤的文章。 顯示所有文章

2019年1月14日 星期一

06838083 陳書勤 HW5


色彩模型(Color Models)
色彩模式就是用來表示所有色彩的呈現方式,一般來說,我們經常使用的色彩選取介面都是以二維的平面顯示色彩樣式(如圖)

若要完整的表示所有色彩須利用在三維空間座標,以立方體的方式來表示不同程度的紅、綠、藍(三原色)

X軸表示紅色程度  Y軸表示藍色程度  Z軸表示綠色程度

若將RGB三度空間上固定將其中一個原色為 0,其他兩個原色用不同程度相加呈現出來的不同平面:綠藍[0,Y,Z]、紅藍[X,Y,0]、紅綠[X,0,Z]平面。 

R=0所呈現之GB平面

G=0所呈現之RB平面

B=0所呈現之RG平面







 
   

常見的色彩模型主要為 RGB 色彩模式 以及 YUV 色彩模型,當然還有全彩印刷手冊中的影像會使用 CMYK 色彩模式等……

顏色的三原色主要區分為光和顏料:
王世堅 遭諷沒中心思想七彩顏色混一起是黑色
色光的三原色↓(RBG)
     



顏料的三原色↓(RBY)
          

RGB 色彩模型又稱為三原色光色彩模型, 是一種加色模型, 將不同程度的紅、綠、藍光加在一起, 以呈現出不同的色彩。
R,G,B是人類眼睛最直接接收的光彩色體系,也是掃描器的直接輸出訊號,跟印表機的R,G,Y不同。電腦用RGB三個數值各有255種變化的數值來標示顏色,亦可表示為3*224種顏色加法色系。

YUV 色彩模型是一種歐系電視所採用的顏色編碼方法,主要用於優化彩色視訊訊號的傳輸,使其向後相容老式黑白電視。採用YUV色彩空間的重要性是它的亮度信號Y和色度信號UV是分離的。如果只有Y信號分量而沒有UV信號分量,那麼圖像就是顯示為黑白灰度圖像,彩色電視採用YUV空間正是為了用亮度信號Y解決彩色電視機與黑白電視機的相容問題使黑白電視機也能接收彩色電視信號。
Y」表示明亮度LuminanceLuma
U」和「V」則是色度濃度ChrominanceChroma)。
UV 用實數來表示, 範圍為



Y ϵ [0,1]
U ϵ [-0.436, 0.436]
V ϵ [-0.615, 0.615]
將亮度「Y」設定為0.5
左圖是不同程度的「U」、「V」彩度變化情況。
正中間的點表示顏色沒有偏向特定色彩, 故呈現灰色,而越偏向外緣顏色越鮮明。
YUV 三度空間上,分別將
亮度Y設定為 00.51
彩度U」、「V用不同程度值, 所呈現出來的不同UV平面。



Y=0
Y=0.5
Y=1
 YUVRGB的互相轉換(RGB取值範圍均為0-255
RGBYUV的轉換︰
YUVRGB的轉換︰
[Y] = [ 0.299  0.587  0.114]   [R]
[U] = [-0.148 -0.289  0.437] * [G]
[V] = [ 0.615 -0.515 -0.100]   [B]
[R] = [1  0      1.140]   [Y]
[G] = [1 -0.395 -0.581] * [U]
[B] = [1  2.032  0    ]   [V]


        整數運算的 RGB to YUV 轉換公式:
Y = ( ( 66 * R + 129 * G + 25 * B + 128) >> 8) + 16
U = ( ( -38 * R - 74 * G + 112 * B + 128) >> 8) + 128
V = ( ( 112 * R - 94 * G - 18 * B + 128) >> 8) + 128
        RGB YUV 都是 8 位元整數。
但計算過程中, 會需要用到 16 位元整數。
故寫程式時必須將 RGB 宣告成 INT 的整數資料型態。

        整數運算的 YUV to RGB 轉換公式:
C = Y - 16
D = U - 128
E = V – 128

R = clip(( 298 * C                  + 409 * E + 128) >> 8)
G = clip(( 298 * C - 100 * D - 208 * E + 128) >> 8)
B = clip(( 298 * C + 516 * D
                + 128) >> 8)
        Clip() 函式將 RGB 限制在 0255 之間,超過此範圍將被設成0255
        而寫程式時CDE同樣必須宣告成 INT 的整數資料型態。

   
           

ICI  調色盤表示系統(ICI Color Palette Notation System)
以多樂士CP5調色系統為例:

顏色編號介紹CP5調色系統顏色的排列是以三維空間(色相(Color Hue)、明亮度(Light Reflectance)及色彩飽和度(Chroma))爲原理。
色相——顏色的類別
色彩系列的顏色是以下排列爲序,這就是色相。

 
               

• RR在本色扇中顏色顯示時,稱爲REDS
YR在本色扇中顏色顯示時,稱爲ORANGES
YY在本色扇中顏色顯示時,稱爲YELLOWS
GYGG在本色扇中顏色顯示時,稱爲GREENS
BGBB在本色扇中顏色顯示時,稱爲BLUES
RB在本色扇中顏色顯示時,稱爲VIOLETS
明亮度——顏色的亮度
是表示一個顏色對光線的反射係數,即亮度或者暗度。係數值越高,顏色的亮度也越高,顏色就越淺。
色彩飽和度——顏色的豐滿度
係數值越高,顏色的飽和度就越高,則顏色越豐滿。

















ICI Dulux COLOUR PALETTE 4 臺灣ICI得利塗料色彩系統(CP4)2016
含紅橙黃綠藍紫色與中性色系八大色系
YY / YR / RR / RB / BB / BG / GG / GY
2016色清楚標示色彩語言,方便精確選色
ICI三度色彩編碼,精準呈獻空間色彩

這個應該是程式碼最少的作業了,我們把圖片先轉成灰階,就是(R+G+B) / 3,我們把得到的這個值轉成YUV,我們要的只有Y值而已,UV填上你在YUV模型上選的顏色UXYV值,然後再把它們轉回RGB,更新畫面就完成了,主要就是當我們要更改一個影像的基底風格時,用YUV去更改會是一個很方便的做法。

2018年12月23日 星期日

04362782 柯岱佑 HW05

色彩模型
這邊是介紹RGB 跟YUV
RGB就是三原色然後把圖給畫出來。
YUV,彼此有重疊。「Y」表示明亮度(Luminance、Luma),「U」和「V」則是色度濃度(Chrominance、Chroma)。



左上(藍色象素可變動)
右上(紅色象素可變動)
左下(綠色象素可變動)
右下(Y值可變動)



他們之間的公式轉會為



這個應該是程式碼最少的作業了,我們把圖片先轉成灰階,就是(R+G+B) / 3,我們把得到的這個值轉成YUV,我們要的只有Y值而已,UV填上你在YUV模型上選的顏色U是X值Y是V值,然後再把它們轉回RGB,更新畫面就完成了,主要就是當我們要更改一個影像的基底風格時,用YUV去更改會是一個很方便的做法。

2018年1月16日 星期二

04362411 王偉橋,HW05

色彩模型

我們最常見的色彩模型有兩種,一種是RGB色彩模型嗎,還有一種是YUV色彩模型。
首先是我們的RGB色彩模型,就是三原色的模型通過不同程度的顏色加在一起然後呈現,如果用三維坐標表示,將會形成一個立方體,原點為黑色,立方體魚原點對應的點為白色,下面三張圖是RGB分別為0是的所在平面
R=0
G=0

B=0
YUV色彩模型也是三個變量表示顏色,Y代表亮度,U,V代表彩度,RGB和YUV兩個模型可以通過公式相互轉換。我們通過YUV去改變圖片首先要將圖片變為灰階影像
原圖
灰階影像
然後在通過選擇UV的值去改變圖的色彩,結果如下




2018年1月12日 星期五

04360501 林志謙 HW04

空間濾波with C++ Builder 6


我們今天來討論一下濾波器和圖片之間的關係
濾波器是一個九宮格的表格,而九宮格的正中心就是我們現在掃描到的pixel
而我們通常會拿正中心色彩值和四周圍比較、調整之間的比例...等等
而當我們掃描到邊界時會有pixel不足放滿九宮格的問題
這時有3種最法:1.補零 2.鏡像放入色彩值 3.忽略不看,而下面的討論都是採用第三種方法

--------------------------------------------------------------------------------------------------------------------------

首先是中值濾波器
中值濾波器就是把九宮格中間的數值替換成九宮格內全部的數值排序過後取最中間的值
可以有效地解決胡椒鹽雜訊的問題
我們以Sheep.bmp為例

(Sheep.bmp)
(胡椒鹽雜訊5%)
這邊提一下我產生胡椒鹽雜訊的方法
首先在每個pixel random產生1~100的數值,接下來如果<=5就把那格的色彩值設為255
這是我們用中值濾波器做完的結果,可以看到大部分胡椒鹽雜訊都被去掉了
不過還是有一點點沒被去掉,是因為九宮格內有超過一半是雜訊,所以替換後還是雜訊
還有一個值得注意的是邊界,因為上面我們採取邊界不理,所以邊界的雜訊無法完全去除
--------------------------------------------------------------------------------------------------------------------------

接下來是平滑濾波器(Smoothing)
我們直接來看結果
平滑濾波器就是把九宮格中間的數值替換成九宮格內所有的數值相加除以9
由上圖我們可以看出,在那隻綿羊的邊邊跟原圖比平滑了許多

--------------------------------------------------------------------------------------------------------------------------

最後是銳化濾波器(Sharping)
一樣我們先看結果
銳化的濾波器所帶的數值是經由一連串數學式子導出來的,我們這裡不多作探討
我是把九宮格內中間的數值替換成把周圍乘以 -1 相加後再加上中間值乘以 9 後替換
注意如果大於255要換成255,小於0要換成0



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不能像上面色彩模型一樣更改
不然會變成純色圖片(當初也是因為這個改了很久)

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


04360286 趙俊彥,HW05

色彩模型

由左到右分別是BG,RB,RG,以及UV
利用下面的滑軸來調整值,分別是R,G,B,Y

我一開始畫圖的方法是用線去畫,將線的位置一步步往右移去覆蓋掉前一條線的顏色,但這樣做再移動滑軸的時候會很慢,後來我直接開一張空白的圖,一個一個像素點放顏色,這樣在移動滑軸的時候就順很多,我猜是因為用現在畫的時候覆蓋前一條線的時候會重複存入多個像素點,而開一張圖後,只要存入單一像素點即可

利用YUV來將圖片的色調改變
用以下這張圖片舉例

透過點擊上面的UV色盤來選擇我們想要的色調,再將其套入原來的圖片




利用亮度公式將每個像素點的Y值先算出,然後再帶入我們所選定的UV,得出的RGB再放入原本像素點的RGB即可,要注意的是RGB需要設限制,否則在運算過程中很有可能會超出0~256的範圍而導致圖片的顏色變得很奇怪