顏色模型

本人錄製技術視頻地址:https://edu.csdn.net/lecturer/1899 歡迎觀看。

什麼是顏色

Wiki是這樣說的:顏色或色彩是通過眼、腦和我們的生活經驗所產生的一種對光的視覺效應。嗯,簡單點說,顏色就是人對光的一種感覺,由大腦產生的一種感覺。感覺是一個很主觀的東西,你怎麼確定你看到的紅色和我看到的是一樣的呢?這個視頻解釋的很不錯。我們需要先假設正常人對於同一種光產生的感覺基本是一致的,討論才能繼續下去。

人的視網膜上佈滿了感光細胞,當有光線傳入人眼時,這些細胞就會將刺激轉化爲視神經的電信號,最終在大腦得到解釋。視網膜上有兩類感光細胞:視錐細胞視杆細胞

視錐細胞大都集中在視網膜的中央,每個視網膜大概有700萬個左右。每個視錐細胞包含有一種感光色素,分別對紅、綠、藍三種光敏感。這類細胞能在較明亮的環境中提供辨別顏色和形成精細視覺的功能。

視杆細胞分散分佈在視網膜上,每個視網膜大概有1億個以上。這類細胞對光線更爲敏感(敏感程度是視錐細胞的100多倍),一個光子就足以激發它的活動。視杆細胞不能感受顏色、分辨精細的空間,但在較弱的光線下可以提供對環境的分辨能力(比如夜裏看到物體的黑白輪廓)。

當一束光線進入人眼後,視細胞會產生4個不同強度的信號:三種視錐細胞的信號(紅綠藍)和視感細胞的信號。這其中,只有視錐細胞產生的信號能轉化爲顏色的感覺。三種視錐細胞(S、M和L類型)對波長長度不同的光線會有不同的反應,每種細胞對某一段波長的光會更加敏感,如下圖。這些信號的組合就是人眼能分辨的顏色總和。

color-1
三種視錐細胞(S、M和L類型)對單色光譜刺激的反應
( 橫座標爲光的波長,縱座標爲產生信號的強度)

color-0
能夠引起視錐細胞活動的光波長範圍 :312.3nm至745.4mn(可見光)

這裏有一個重要的理論:我們可以用3種精心選擇的單色光來刺激視錐細胞,模擬出人眼所能感知的幾乎所有的顏色(例如紅綠光的混合光,和單色黃光,刺激視錐細胞產生的視神經信號是等效的),這就是三色加法模型。所以說"三原色"的原理是由生理因素造成的。

顏色的數字化

根據上面的理論,只需要選定三原色,並且對三原色進行量化,那就可以將人的顏色知覺量化爲數字信號了。三色加法模型中,如果某一種顏色(C),和另外一種三色混合色,給人的感覺相同時,這三種顏色的份量就稱爲該顏色(C)的三色刺激值。對於如何選定三原色、如何量化、如何確定刺激值等問題,國際上有一套標準——CIE標準色度學系統。

CIE(國際照明委員會)是位於歐洲的一個國際學術研究機構,1931年,CIE在會議上根據之前的實驗成果提出了一個標準——CIE1931-RGB標準色度系統。

CIE1931-RGB系統選擇了700nm(R) 546.1nm(G) 435.8nm(B) 三種波長的單色光作爲三原色。之所以選這三種顏色是因爲比較容易精確地產生出來(汞弧光譜濾波產生,色度穩定準確)。

 color-3
CIE1931-RGB 三刺激值曲線,根據人類視覺實驗結果繪製。

從上圖可以看到,三個顏色的刺激值R、G、B如何構成某一種顏色:例如580nm左右(紅綠線交叉點)的黃色光,可以用1:1(經過亮度換算..)的紅綠兩種原色混合來模擬

color-lab
CIE所做顏色匹配實驗的原理圖

注意上面的曲線座標有一部分是負值,這是由顏色匹配實驗產生的。如上圖,有些光譜色(左邊)用三原色(右邊)來匹配時,無論怎樣調節三原色,都不能使兩個視場達到匹配,必須在光譜色(左邊)添加適量的原色才行。這就是上面刺激值曲線中,紅色出現一部分負值的原因。

如果要根據三個刺激值R、G、B來表現可視顏色,繪製的可視圖形需要是三維的。爲了能在二維平面上表現顏色空間,這裏需要做一些轉換。顏色的概念可以分爲兩部分:亮度(光的振幅,即明暗程度)、色度(光的波長組合,即具體某種顏色)。我們將光的亮度(Y)變量分離出來,之後用比例來表示三色刺激值:

r=RR+G+B     g=GR+G+B     b=BR+G+B

 這樣就能得出r+g+b=1。由此可見,色度座標r、g、b中只有兩個變量是獨立的。這樣我們就把刺激值R、G、B轉換成r、g、Y(亮度)三個值,把r、g兩個值繪製到二維空間得到的圖就是色域圖。

 

CIE1931_rgxy
根據CIE1931-RGB模型繪製的rg色度圖

 上圖中,馬蹄形曲線就表示單色的光譜(即光譜軌跡)。例如540nm的單色光,可以看到由r=0、g=1、b=(1-r-g)=0三個原色的分量組成。再例如380-540nm波段的單色光,由於顏色匹配實驗結果中紅色存在負值的原因,該段色域落在了r軸的負區間內。自然界中,人眼可分辨的顏色,都落在光譜曲線包圍的範圍內。

CIE1931-RGB標準是根據實驗結果制定的,出現的負值在計算和轉換時非常不便。CIE假定人對色彩的感知是線性的,因此對上面的r-g色域圖進行了線性變換,將可見光色域變換到正數區域內。CIE在CIE1931-RGB色域中選擇了一個三角形,該三角形覆蓋了所有可見色域,之後將該三角形進行如下的線性變換,將可見色域變換到(0,0)(0,1)(1,0)的正數區域內。即假想出三原色X、Y、Z,它們不存在於自然界中,但更方便計算。

XYZ=1b21b11b21b31b12b22b32b13b23b33RGB=10.176970.490.176970.000.310.812400.010.200.010630.99RGB

得到的結果就是下圖:

 CIExy1931
CIE1931-XYZ色度圖
注意這裏的顏色只是示意,事實上沒有設備能完全還上面所有的自然色域

這個圖有些有意思的性質:

  • 該色度圖所示意的顏色包含了一般人可見的所有顏色,即人類視覺的色域。色域的馬蹄形弧線邊界對應自然界中的單色光。色域下方直線的邊界只能由多種單色光混合成。
  • 在該圖中任意選定兩點,兩點間直線上的顏色可由這兩點的顏色混合成。給定三個點,三點構成的三角形內顏色可由這三個點顏色混合成。
  • 給定三個真實光源,混合得出的色域只能是三角形(例如液晶顯示器的評測結果),絕對不可能完全覆蓋人類視覺色域。

這就是CIE1931-XYZ標準色度學系統。該系統是國際上色度計算、顏色測量和顏色表徵的統一標準,是幾乎所有測色儀器的設計與製造依據。

常見顏色模型

顏色模型就是描述用一組數值來描述顏色的數學模型。例如coding時最常見的RGB模型,就是用RGB三個數值來描述顏色。通常顏色模型分爲兩類:設備相關和設備無關。

設備無關的顏色模型:這類顏色模型是基於人眼對色彩感知的度量建立的數學模型,例如上面提到的CIE-RGB、CIE-XYZ顏色模型,再比如由此衍生的CIE-xyY、CIE-L*u*v、CIE-L*a*b等顏色模型。這些顏色模型主要用於計算和測量。

設備相關的顏色模型:以最長見的RGB模型爲例,一組確定的RGB數值,在一個液晶屏上顯示,最終會作用到三色LED的電壓上。這樣一組值在不同設備上解釋時,得到的顏色可能並不相同。再比如CMYK模型需要依賴打印設備解釋。常見的設備相關模型有:RGB、CMYK、YUV、HSL、HSB(HSV)、YCbCr等。這類顏色模型主要用於設備顯示、數據傳輸等。

下面就對這些顏色模型一一作出解釋。

CIE-RGB

正如上面寫的,這個模型是由真實的人眼顏色匹配實驗得出的模型,RGB分別表示那三個固定波長的光的份量。

屏幕快照 2013-08-11 下午10.07.13
CIE-RGB立體色域

CIE-XYZ

上面也有,就是根據CIE-RGB進行變換得到的顏色模型,XYZ分別表示三個假想色的光的份量。通常簡寫爲XYZ顏色模型。

GamutXYZ_WF
CIE-XYZ的立體色域

CIE-Yxy

該模型由CIE-XYZ衍生得來。其中x=XX+Y+Z ,y=YX+Y+Z, Yxy中的Y表示光的亮度。這個模型投影到x-y平面上即上面的CIE1931-XYZ色度圖。其中x、y分量的取值範圍是[0,1]。有時該模型也被稱作CIE-xyY。

GamutxyY_WF
CIE-xyY立體色域

CIE-L*u*v* 和 CIE-L*a*b*

CIE1931-XYZ的模型沒有給出測量兩個顏色差距(色差)的方法,顏色差距在色度圖上也是不均勻的。因此CIE基於CIE-XYZ進行非線性壓縮,設計了能在色度圖上直接測量色差的均勻色度圖,叫做CIE UCS色度圖(1960和1976各有一版),旨在將色彩均勻化。

1024px-CIE_1976_UCS
CIE1976 UCS(uniform chromaticity scale) 色度圖

根據CIE UCS色度圖,CIE建立了CIE1976-L*u*v*顏色模型,簡稱CIELUV。其中L*表示亮度,u*、v*是色度座標。L*取值範圍是[0,100],u*和v*取值範圍[0,1]。
CIE-L*u*v*用於自己能發光的光源,例如顯示器。

Luvspace
CIE-Luv立體色域圖

稍後CIE又跟據CIE UCS色度圖建立了CIE1976-L*a*b*顏色模型,簡稱CIELAB或者Lab。 L*表示亮度,a*、b*是色度座標(a*是紅/綠軸,b*是黃/藍軸)。L*取值範圍是[0,100],a*和b*取值範圍[0,1]。
CIE-L*a*b*用於表示反射、透射的物體的顏色。

GamutLab_WF
CIE-L*a*b立體色域

注意,還有一個顏色模型叫做Hunter1948 L,a,b,是由HunterLab公司製作的。雖然和CIE的Lab模型有些關聯,但其實現不一樣。一般情況說Lab顏色模型,都是指CIE-Lab模型。

CIE-L*C*h

CIE LCH採用了和CIE L*a*b*相同的顏色空間,但用貼近人認知的方式表達色彩。其中L*表示明度(Lightness,該值定義和Lab模型一樣),C*表示飽和度(Chroma),h°表示色調(Hue)。C*和h°即用L*a*b*中的a*b*分量換算得到。

labcolorspace
CIE L*C*h°立體色域圖(該圖色域應該和L*a*b*是重合的,可以對比一下)

RGB

最常見的顏色模型,設備相關。三個數值代表R、G、B分量,取值均爲[0,255]。

RGBspace
RGB顏色模型( 一般設備的RGB僅能表現CIE-XYZ很少一部分)

通常設備(例如筆記本的液晶顯示屏)能表現的色域大概是下面這樣。

屏幕快照 2013-08-12 上午12.21.24
OSX中ColorCync工具 將普通RGB顯示到Yxy立體色域中

CMYK、CMY

這個顏色模型常用於印刷出版。CMYK表示青(Cyan)品紅(Magenta)黃(Yellow)黑(BlacK)四種顏料。由於顏料的特性,該模型也是與設備相關的。相對於RGB的加色混色模型,CMY是減色混色模型,顏色混在一起,亮度會降低。之所以加入黑色是因爲打印時由品紅、黃、青構成的黑色不夠純粹。

CMYK-circlesCMYK-raster-CMYK

 通常其能表現的色域很小,如下圖。

屏幕快照 2013-08-12 上午12.27.04
OSX中ColorCync工具 將普通CMYK顯示到Yxy立體色域中

HSL、HSV

HSL和HSV的顏色模型比較相近,它們用來描述顏色相對於RGB等模型顯得更加自然。電腦繪畫時,這兩個模型非常受到歡迎。

HSL和HSV中,H都表示色相(Hue)。通常該值取值範圍是[0°,360°],對應紅橙黃綠青藍紫-紅這樣順序的顏色,構成一個首尾相接的色相環。色相的物理意義就是光的波長,不同波長的光呈現了不同的色相。

HSL和HSV中,S都表示飽和度(Saturation)(有時也稱爲色度、彩度)即色彩的純淨程度。例如龍袍的金黃色飽和度就比屎黃色高。對應到到物理意義上:即一束光可能由很多種不同波長的單色光構成,波長越多越分散,則色彩的純淨程度越低,而單色的光構成的色彩純淨度就很高。

兩個顏色模型不同的就是最後一個份量。
HSL中的L表示亮度(Lightness/Luminance/Intensity)。根據縮寫不同HSL有時也稱作HLS或HSI(就是說HSL、HLS、HSI是一回事)。
HSV中的V表示明度(Value/Brightness)。根據縮寫不同,HSV有時也被稱作HSB(就是說HSV和HSB是一回事)。

至於亮度和明度的區別,可以看下面的圖。一種純色的明度是白色的明度,而純色的亮度等於中灰色的亮度。
屏幕快照 2013-08-12 上午1.02.18

下面的圖能更好的對比HSL和HSV的區別:在圓柱體外圍是純色(紅黃綠藍紫...)HSL中,這圈純色位於亮度(L)等於1/2的部位,而在HSV中是在明度(Value)等於1的部位。

HSL_color_solid_cylinder_alpha_lowgammaHSV_color_solid_cylinder_alpha_lowgamma

將上面的圓柱體裁掉無用的部分,得到的是如下的錐形,就能更明顯的看出HSL和HSV的區別了。

HSL_color_solid_dblcone_chroma_grayHSV_color_solid_cone_chroma_gray

YUV、YCbCr(YCC)、YPbPr、YDbDr、YIQ

這些顏色模型大都是用在電視系統、數位攝影等地方。其中的Y分量都表示的是明亮度(Luminance、Luma)。

YUV顏色模型中,U、V表示的是色度(Chrominance/Chroma)。YUV是歐洲電視系統所採用的顏色模型(屬於PAL制式),顏色被分爲一個亮度信號和兩個色差信號進行傳輸。

YCbCr(簡稱YCC)中,Cb和Cr藍色(blue)和紅色(red)的色度。YCbCr是YUV的壓縮和偏移的版本。

YPbPr類似YCbCr,與之不同的是,YPbPr選用的CIE色度座標略有不同。一般SDTV傳輸的色差信號被稱作Cb、Cr,而HDTV傳輸的色差信號被稱作Pb、Pr。

YDbDr也類似YCbCr,同樣也是色度座標不同。YDbDr是SECAM制式電視系統所用的顏色模型。

YIQ。。嗯也和上面的類似。。是用在了NTSC制式的的電視系統裏。。

PAL-NTSC-SECAM.svg-1
全球電視系統制式分佈,PAL用YUV、SECAM用YDbDr、NTSC用YIQ

其他顏色模型

除了上面這些比較常見的顏色模型,其他的顏色模型還有LMS、RYB、RAL等等,比較小衆所以懶得查了。。但這其中有一個很有意思的顏色模型:Pantone。
Pantone公司是一家專門開發和研究色彩而聞名全球的權威機構,爲各個行業提供專業色彩選擇和精確的交流語言。他們最知名的產品當屬PANTONE色卡,提供了一系列的標準色。一套PANTONE色卡可不便宜。。如果感興趣,可以到AppStore上看看PANTONE的作品,There's an App for that...

顏色模型之間的轉換

從上面的介紹可以直到,顏色模型通常分爲設備相關和設備不相關,轉換的時候便有很多不同。

設備相關的顏色模型,例如RGB、CMYK,這樣的模型只是規定了一個取值的範圍,例如RGB每個分量取值是0-255,則該值如何呈現出光來,是需要具體設備來解釋的。這樣的顏色模型不會關聯到人眼的刺激值的具體值,它們之間的轉換相對簡單。

設備不相關的顏色模型,例如XYZ、Lab,這樣的模型是需要反映真實的可見顏色的,所以他們與設備無關,但是轉換時相對較麻煩,需要很多條件。

爲了在設備相關、設備不相關的顏色模型間互相轉換,一般是以RGB和CIEXYZ作爲橋樑進行的,如下圖。

color-convert

爲了能將RGB映射到真實的視覺顏色空間XYZ中,需要預先定義一些常量。

根據上面的CIE-XYZ色域圖的介紹,給定三個光源,最終能覆蓋的色域只能是三角形,所以這裏需要定義R、G、B在XYZ色域的絕對位置。例如下圖就是sRGB定義的R、G、B在色彩空間中的絕對位置。這樣就建立的RGB到XYZ的線性關係。

CIExy1931_sRGB

下面是一些常見的RGB色彩空間:

colorspace

(多說一句,通常Photoshop繪圖時,默認選擇的是sRGB,該色域可以在大多數設備上完整呈現出來。那些號稱覆蓋100%色域的上流顯示器,指的是覆蓋了AdobeRGB色域。目前沒有設備能完整呈現上圖完整的色域)

當RGB都爲最大值時,該點表示白色。在XYZ色域中,白色是如何定義的CIE也有一些標準,即標準光源。不同的標準光源有着不同的色溫。詳情取看Wiki吧:Standard illuminate

如下圖,色溫曲線爲下圖中的弧線。

C0297-Figure2

將中間這部分放大,標準光源的定義即位於這條曲線附近。
Planckian-locus

常見標準光源含義如下:
A (2856K) 白熾燈
B (4874K) 正午直射日光
C (6774K) 北方天空光

D50 (5003K) 地平線日光
D55 (5503K) 午後的日光
D65 (6504K) 中午的日光
D75 (7504K) 北方天空光
E (5454K) 代表標準照光源D以外的其它日光

F1 (6430K) 日光熒光燈
F2 (4230K) 冷白熒光燈
F3 (3450K) 白色熒光燈
F4 (2940K) 暖白熒光燈

F5 (6350K) 日光熒光燈
F6 (4150K) 簡白日光燈

F7 (6500K) D65模擬
F8 (5000K) D50模擬
F9 (4150K) 冷白豪華熒光燈
F10 (5000K) 飛利浦TL85,Ultralume 50
F11 (4000K) 飛利浦TL84,Ultralume 40
F12 (3000K) 飛利浦TL83,Ultralume 30

RGB和XYZ轉換時,需要選定一個標準光源。通常的選擇是D50、D65。

RGB是在顯示器設備上顯示的,以電視爲例,其顯像管的電壓和發出的亮度並不是線性的,例如0.5的Green亮度,顯像管可能只需要0.2的電壓。
這樣的關係曲線通常是一個乘冪函數:Y=(X+e)γ,即Gamma校正。通常電視系統的Gamma值爲2.2。RGB與XYZ轉換時,該值也是一個必須的參數。

所以,根據上面這些說明,XYZ與RGB之間轉換,需要一個預定義的RGB模型、一個標準光源、一個Gamma值。。等等。。
通常情況下參數這樣選擇的:Observer:2°, Illuminant:D65, RGBModel:sRGB, Gamma:sRGB.

好了,下面就是各個模型之間的轉換方式了。

RGB與HSL之間的轉換

(r,g,b)是一個顏色RGB(紅綠藍)座標,取值都在[0,1];
(h,s,l)是顏色的HSL(色相、飽和度、亮度)座標,h取值範圍是[0,360)度,s和l取值範圍是[0,1]。

由RGB轉換爲HSL時,設max爲r,g,b中的最大值,min爲r,g,b中的最小值。轉換公式如下。

h=060×gbmaxmin+0,60×gbmaxmin+360,60×brmaxmin+120,60×rgmaxmin+240,if max=minif max=r and gbif max=r and g<bif max=gif max=b

l=12(max+min)

s=0maxminmax+min=maxmin2l,maxmin2(max+min)=maxmin22l,if l=0 or max=minif 0<l12if l>12

注意,實際情況下,如果r=g=b時,該顏色是非彩色的,這時色相(Hue)應該無定義。
下面是RGB to HSL的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

由HSL轉換爲RGB時,
如果飽和度(s)=0,則顏色是非彩色的。色相(Hue)是無意義的,r=g=b=l(亮度)。
如果飽和度(s)≠0,有如下的計算方式:

q={l×(1+s),l+s(l×s),if l<12if l12

p=2×lq

hk=h360(h 進行單位換算成 [0,1)轉內)

tR=hk+13

tG=hk

tB=hk13

if tC<0tC=tC+1.0for eachC{R,G,B}

if tC>1tC=tC1.0for eachC{R,G,B}

對於每個顏色向量 Color = (ColorR, ColorG, ColorB) = (r, g, b),

ColorC=p+((qp)×6×tC),q,p+((qp)×6×(23tC)),p,if tC<16if 16tC<12if 12tC<23otherwise 

for eachC{R,G,B}

下面是HSL to RGB的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

RGB和HSV之間的轉換

由於HSL和HSV顏色模型比較相像,他們的轉換公式也有很多相同的地方。

(r,g,b)是一個顏色RGB(紅綠藍)座標,取值都在[0,1];
(h,s,v)是顏色的HSV(色相、飽和度、明度)座標,h取值範圍是[0,360)度,s和v取值範圍是[0,1]。

轉換公式中,色相(H)的算法和上面HSL的公式相同,不同的是s和v的計算方式。

h=060×gbmaxmin+0,60×gbmaxmin+360,60×brmaxmin+120,60×rgmaxmin+240,if max=minif max=r and gbif max=r and g<bif max=gif max=b

s={0,maxminmax=1minmax,if max=0otherwise

v=max

注意,實際情況下,如果r=g=b時,該顏色是非彩色的,這時色相(Hue)應該無定義。
下面是RGB to HSV的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

由HSV轉換爲RGB時,
如果飽和度(s)=0,則顏色是非彩色的。色相(Hue)是無意義的,r=g=b=l(亮度)。
如果飽和度(s)≠0,有如下的計算方式:

hih60(mod6)

f=h60hi

p=v×(1s)

q=v×(1f×s)

t=v×(1(1f)×s)

對於每個顏色向量 (r,g,b)

(r,g,b)=(v,t,p),(q,v,p),(p,v,t),(p,q,v),(t,p,v),(v,p,q),if hi=0if hi=1if hi=2if hi=3if hi=4if hi=5

下面是HSV to RGB的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

HSL和HSV之間的轉換

HSL和HSV比較相像,例如他們的H定義都相同。轉換也比較簡單。

設(HSL)是HSL的三個分量,(h,s,v)是HSV的三個分量。

HSL轉換爲HSV是如下計算方法:

h=H

L=2L

S={L,2L,if L1if L>1

v=1+S2

s=2SL+S

下面是HSL to HSV的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

設(HSV)是HSV的三個分量,(h,s,l)是HSL的三個分量。

HSV轉換爲HSL是如下計算方法:

h=H

L=(2S)V

S={SVL,2L,if L1if L>1

l=1+S2

s=L2

下面是HSV to HSL的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

RGB和CMYK之間的轉換

CMYK是用於印刷的,CMYK和RGB轉換時,總會有色彩的畸變,所以一般排版印刷時最好不要進行顏色轉換。

在coding時,由RGB轉換爲CMYK,有如下計算方式:

tRGB={R,G,B}

先轉換成三分色
tCMY={C,M,Y}={1R,1G,1B}

min{C,M,Y}=1,則tCMYK={0,0,0,1}

否則,再轉換成四分色
K=min{C,M,Y}

tCMYK={CK1K,MK1K,YK1K,K}

下面是RGB to CMYK的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

由CMYK轉換爲RGB時,有如下計算方式:

tCMYK=C,M,Y,K

轉換成三分色

tCMY=C,M,Y=C(1K)+K,M(1K)+K,Y(1K)+K

然後再轉換成三原色光

tRGB=R,G,B=1C,1M,1Y

也就是

tRGB= 1-(C(1-K)+K),1-(M(1-K)+K),1-(Y(1-K)+K)
=1-C(1-K)-K,1-M(1-K)-K,1-Y(1-K)-K

下面是CMYK to RGB的C代碼,爲了方便計算,傳入傳出的值範圍都是[0,1]。

其他的模型轉換需求不多,直接看下面的代碼吧。以後有閒再補上。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章