80 likes | 146 Views
何謂色彩. 人類的視覺系統一般來說,會將色彩分為不同份量的紅、綠、藍混合起來的結果,因此紅、綠、藍稱為三原色,將任二原色混合後得到的是第二次色 : 紫紅 ( 紫 )= 紅 + 藍 青綠 = 綠 + 藍 黃 = 紅 + 綠. RGB 對色函數. 何謂色彩. 某些波長中的紅、綠、藍色值為負數,實際上不可能會有這樣的結果,不過可以看成色源再加上其他原色光束,以維持對色。為了除去色彩中的負數值, CIE 採用 XYZ 色彩模型, XYX 可以透過線性轉換與從對應的 RGB 數值得到。. XYZ 對色函數. 何謂色彩.
E N D
何謂色彩 • 人類的視覺系統一般來說,會將色彩分為不同份量的紅、綠、藍混合起來的結果,因此紅、綠、藍稱為三原色,將任二原色混合後得到的是第二次色: 紫紅(紫)=紅+藍 青綠=綠+藍 黃=紅+綠 RGB對色函數
何謂色彩 • 某些波長中的紅、綠、藍色值為負數,實際上不可能會有這樣的結果,不過可以看成色源再加上其他原色光束,以維持對色。為了除去色彩中的負數值,CIE採用XYZ色彩模型,XYX可以透過線性轉換與從對應的RGB數值得到。 XYZ對色函數
何謂色彩 • 一般來說,組成特定顏色的XYZ值稱為三色激值,若不考慮亮度,三色激值可以除以X+Y+Z加以正規劃: x = X / X+Y+Z y = Y / X+Y+Z z = Z / X+Y+Z 可發現x+y+z=1,因此顏色可以只用x與y表示,稱為色度座標。
何謂色彩 • 知道xy與Y值後,便可以透過反推上述方程式求得三色激值的XZ : X= ( x / y ) r Z= (1 – x – y / y ) r • 色度圖: wxyz=load('ciexyz31.txt'); xyz=wxyz(:,2:4)'; xy=xyz'./(sum(xyz)'*[1 1 1]); x=xy(:,1)'; y=xy(:,2)'; figure,plot([x x(1)],[y y(1)]),xlabel('x'),ylabel('y'),axis square 色度圖
色彩模型 • 色彩模型是以某種標準的方式分辨顏色的方法, 基本上是由三維座標與一個子空間所組成,在這子空間中,一個點便代表一個色彩。 • 要定義出色域,首先產生一個100X100X3的陣列,陣列中的每個點都對應一個XYZ數值(i/100 , j/100 , 1-i/100-j/100) ,然後計算對應RGB值,若為負數,輸出為白色:
色彩模型 • function res=gamut() • global cg; • x2r=[3.063 -1.393 -0.476;-0.969 1.876 0.042;0.068 -0.229 1.069]; • cg=zeros(100,100,3); • for i=1:100, • for j=1:100, • cg(i,j,:)=x2r*[j/100 i/100 1-i/100-j/100]'; • if min(cg(i,j,:))<0, • cg(i,j,:)=[1 1 1]; • end; • end; • end; • res=cg; • 然後使用下列指令顯示位於色度圖中的色域: • >> imshow(cG),line([x' x(1)],[y' y(1)]),axis square,axis xy,axis on RGB色域
色彩模型 • 色調(Hue) ,飽和度(Saturation) ,明暗度(Value) ,縮寫為HSA 。 • 色調(Hue):[全彩]的屬性(紅、綠、藍、橘等) 。 • 飽和度(Saturation):色彩被白色稀釋的程度。色彩中含有白色越多,飽和度變越低,因此深紅色飽和度高,亮紅色飽和度低。 • 明暗度(Value):亮的顏色明暗度高,岸的顏色明暗度低。
虛擬上色 • 虛擬上色指的是對灰階影像上指定顏色,以便在視覺上凸顯影像的某些面向。 • 明暗度切割:這個方法是將影像切割成幾個灰些範圍,每個範圍只定不同顏色: