課程設(shè)計--不同彩色空間模型轉(zhuǎn)換的實現(xiàn)_第1頁
已閱讀1頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  課程設(shè)計(論文)任務(wù)書</p><p>  院(系):電氣工程學(xué)院 基層教學(xué)單位:自動化儀表系 </p><p>  說明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。</p><p>  2014年 12月8 日 </p><p><b

2、>  摘要</b></p><p>  一幅RGB 圖像就是M×N×3 大小的彩色像素的數(shù)組,其中的每個彩色像素點都是在特定空間位置的彩色圖像所對應(yīng)的紅、綠、藍(lán)色三個分量實現(xiàn)。不同彩色空間(又被稱作彩色模型)的圖像相互轉(zhuǎn)換,它們在應(yīng)用中的使用可能比RGB更方便或更恰當(dāng)。這些模型是RGB模型的變換,包括NTSC、YCbCr、HSV、CMY、CMYK和HSI彩色空間。</p

3、><p>  關(guān)鍵詞: 彩色空間(彩色模型) NTSC模型 YCbCr 模型 HSI模型</p><p><b>  目錄</b></p><p><b>  概述</b></p><p>  1.1常見的彩色空間(又被稱作彩色模型)…………………….5<

4、/p><p>  1.2不同彩色空間轉(zhuǎn)換的原理…………………………………….6 </p><p>  使用Matlab實現(xiàn)轉(zhuǎn)換(程序設(shè)計)</p><p>  2.1 程序設(shè)計……………………………………………………..13</p><p>  總結(jié)…………………………………………………25</p><p>  參考文獻(xiàn)

5、…………………………………………………....26</p><p><b>  第一章</b></p><p>  1.1常見彩色空間介紹</p><p>  1.11 GRB彩色空間</p><p>  一幅RGB 圖像就是M×N×3 大小的彩色像素的數(shù)組,其中的每個彩色像素點都是在特定空間位置的彩

6、色圖像所對應(yīng)的紅、綠、藍(lán)三個分量(見圖6-1)。RGB 圖像也可以看做三個灰度圖像形成的“堆?!保?dāng)發(fā)送到彩色監(jiān)視器的紅、綠、藍(lán)輸入端時,就在屏幕上產(chǎn)生彩色圖像。按照國際上的慣例,形成一幅RGB 彩色圖像的三幅圖像通常被稱作紅、綠、藍(lán)分量圖像。</p><p>  1.12 NTSC(YIQ)彩色空間</p><p>  NTSC 彩色空間常用于用于模擬電視。這種格式的主要優(yōu)勢是灰度信息和

7、彩色數(shù)據(jù)是分離開來的,所以同一信號可以用于彩色電視機和黑白電視機。在NTSC 格式中,圖像數(shù)據(jù)由三部分組成:亮度(Y)、色調(diào)(I)和飽和度(Q)。</p><p>  1.13 YcbCr(YUV)彩色空間</p><p>  YCbCr 彩色空間廣泛用于數(shù)字視頻。在這種格式中,亮度信息用單獨的分量Y 來表示,彩色信息是用兩個色差分量Cb 和Cr 來存儲的。分量Cb 是藍(lán)色分量與參考值的差

8、,分量Cr 是紅色分量與參考值的差。</p><p>  1.14 HSV彩色空間</p><p>  HSV(色調(diào)、飽和度、值)是人們用來從顏色輪或調(diào)色板中挑選顏色(例如顏料或墨水)時使用的彩色系統(tǒng)之一,值得考慮的是,這個顏色系統(tǒng)比RGB 系統(tǒng)更接近人們的經(jīng)驗和對彩色的感知。其中H參數(shù)表示色彩信息(顏色),V參數(shù)表示色彩的明亮程度(0到1),純度S表示一個比例值(0到1),它指所選顏色的

9、純度和該顏色最大純度之間的比率。</p><p>  1.15 CMY 和CMYK 彩色空間</p><p>  青色、紫紅色和黃色是光的二次色它們是顏料的原色在理論上,等量的顏料原色,將青色、紫紅色和黃色混合會產(chǎn)生黑色。在實踐中,將這些顏色混合印刷會生成模糊不清的黑色。所以,為了生成純正的黑色(打印中主要的顏色)第4種顏色——黑色便添加進(jìn)來了,從而給出提升的CMYK 彩色模型大多數(shù)將顏料

10、堆積于紙上的設(shè)備,比如彩色打印機和復(fù)印機,都需要CMY 數(shù)據(jù)輸入,或在內(nèi)部將RGB 轉(zhuǎn)換為CMY。</p><p>  1.16 HSI彩色空間</p><p>  該模型將強度分量與從一幅彩色圖像中承載的彩色信息分開。正如結(jié)果那樣,HSI 模型是開發(fā)基于彩色描述的圖像處理算法的理想工具。對于人來說,這種描述自然而直觀,畢竟人是這些算法的開發(fā)者和使用者。</p><p&

11、gt;  1.2 顏色空間轉(zhuǎn)換原理</p><p>  1.21 NTSC與GRB彩色空間轉(zhuǎn)換</p><p>  由2.11與2.12,在NTSC 格式中,圖像數(shù)據(jù)由三部分組成:亮度(Y)、色調(diào)(I)和飽和度(Q)。所以由NTSC彩色空間的三個分量可由RGB彩色模型三個分量經(jīng)過線性變化得到,變化過程如下:</p><p>  第一行的各元素之和為1,而下兩行元素的

12、和為0。</p><p>  同理,由NTSC轉(zhuǎn)換到RGB關(guān)系如下:</p><p>  1.22 YCbCr(YUV)與GRB彩色空間轉(zhuǎn)換</p><p>  由2.13和2.11可知YCbCr(YUV)圖像也是由各分量組成,而它與RGB分量的線性關(guān)系如下:</p><p>  1.23 HSV與GRB彩色空間轉(zhuǎn)換</p>&

13、lt;p>  HSV 彩色六邊形; (b) HSV 六面錐體</p><p>  將RGB 轉(zhuǎn)換為HSV需要將公式展開,將RGB值(笛卡爾坐標(biāo)系)映射至圓柱坐標(biāo)系,由于在其他計算機圖像學(xué)都有涉及,我們不再討論。</p><p>  1.24 CMY 和CMYK 彩色空間與RGB空間轉(zhuǎn)換</p><p>  CMY或CMYK大多數(shù)是將顏色印于紙上,常用于各種彩色

14、打印機復(fù)印機,而它與RGB空間轉(zhuǎn)換的線性關(guān)系可近似的認(rèn)為:</p><p>  其中R,G,B 三個分量都已經(jīng)歸一化到0到1。</p><p><b>  同理,逆轉(zhuǎn)換為: </b></p><p>  1.24 HSI彩色空間與RGB空間轉(zhuǎn)換</p><p>  由于HSI與RGB分量之間不存在嚴(yán)格的線性關(guān)系,但是,一

15、旦給出一副RGB圖像,若要將其轉(zhuǎn)換為HIS圖像,還是可以實現(xiàn)的(具體的原理在下文中介紹),其中HIS的H分量: </p><p><b>  其中有:</b></p><p>  將從H 的公式中得出的所有結(jié)果除以360°,即可將色調(diào)歸一化在[0,1]之間。</p><p><b>  參數(shù)S(飽和度):&l

16、t;/b></p><p>  最后一個強度參數(shù)I:</p><p>  上述公式的原理:該模型將強度分量與從一幅彩色圖像中承載的彩色信息分開,如果一幅RGB彩色圖像采用圖中的彩色立方體模型,</p><p>  假設(shè)我們站在黑色頂點(0,0,0)處,那么正上方正對是白色頂點(1,1,1),如上圖所示。亮度是沿著連接兩個頂點的連線分布的。在圖6-6 中,這連接

17、黑色和白色頂點的線(亮度軸)與連接紅色與青色頂點的線是垂直的。因此,如果想確定上圖任意彩色點的亮度分量,就需要經(jīng)過包含彩色點且垂直于亮度軸的平面。這個平面和亮度軸的交點將給出范圍在[0,1]之間的亮值。我們還注意到,飽和度隨著與亮度軸之間的距離函數(shù)而增加。事實上,在亮度軸上的點的飽和度為0。我們得到下面的結(jié)論:形成HSI空間所需的色調(diào)、飽和度和亮度值,可以通過RGB 彩色立方體得到。也就是說,通過算出剛剛在前邊推出的幾何推理公式,就可以

18、將任意的RGB 點轉(zhuǎn)換成HSI 模型中對應(yīng)的點。</p><p>  從上面的討論我們認(rèn)識到,HSI 空間由垂直的亮度軸以及垂直于此軸的某個平面上彩色點的軌跡組成。如果從立方體的灰度軸向下看去,如下圖所示,這可能變得更加直觀。在這個平面上,我們看到各原色之間都相隔了120°,各二次色和各原色之間相隔了60°,這意味著各二次色之間也相隔了120。</p><p>  HI

19、S 顏色模型中的色調(diào)和飽和度。點是任意的彩色點,與紅軸的夾角給出了色調(diào),向量的長度是飽和度。在這些平面上,所有彩色的亮度都由垂直亮度軸上平面的位置給出。。HSI 色彩空間的重要組成部分是:垂直亮度軸到彩色點的矢量長度,以及該矢量與紅軸的夾角。因此,選擇哪個形狀并不重要,因為任意形狀都可以通過幾何變換變換成另外兩個。</p><p>  較之不同的由RGB空間轉(zhuǎn)換到HIS空間需要分H分量的范圍:</p>

20、<p><b>  當(dāng)時,</b></p><p><b>  當(dāng)時,</b></p><p><b>  當(dāng) 時,</b></p><p>  此顏色空間的轉(zhuǎn)換運用了,RGB彩色立體圖模型,而且HIS顏色空間是一種較為理想的模型。</p><p><b&g

21、t;  第二章 </b></p><p><b>  程序的實現(xiàn)</b></p><p>  2.11 RGB色彩空間與NTSC格式轉(zhuǎn)換</p><p>  根據(jù)前面的介紹,由于 RGB與NTSC空間有一個現(xiàn)行的關(guān)系,于是我們可以利用此關(guān)系,根據(jù)矩陣的數(shù)據(jù),分別計算出Y,I,Q對應(yīng)的R,G,B分量。</p><

22、p>  具體程序如下(rgb to ntsc):</p><p>  yuanshi=imread('C:\Users\xx\Desktop\68485-106.jpg');</p><p>  subplot(1,2,1);imshow(yuanshi);</p><p>  title('原始圖像');</p>

23、<p>  R = yuanshi(: , : , 1);</p><p>  G = yuanshi(: , : , 2);</p><p>  B = yuanshi(: , : , 3);</p><p>  yiq(:,:,1)=0.226*R+0.587*G+0.114*B;</p><p>  yiq(:,:,2)=0

24、.596*R-0.274*G-0.322*B;</p><p>  yiq(:,:,3)=0.211*R-0.523*G+0.312*B;</p><p>  subplot(1,2,2);imshow(yiq);</p><p>  title('NTSC圖像');</p><p>  ntsc to rgb程序:</

25、p><p>  NTSC=imread('C:\Users\xx\Desktop\NTSC.jpg');</p><p>  subplot(1,2,1);imshow(NTSC);</p><p>  title('NTSC圖像')</p><p>  y=NTSC(: , : , 1);</p>

26、<p>  c=NTSC(: , : , 2);</p><p>  q=NTSC(: , : , 3);</p><p>  rgb(: ,:,1)=y+0.956*c+0.621*q;</p><p>  rgb(: ,:,2)=y-0.272*c-0.647*q;</p><p>  rgb(: ,:,3)=y-1.106*c

27、+1.703*q;</p><p>  subplot(1,2,2);</p><p>  imshow(rgb); </p><p>  title('rgb圖像');</p><p>  由于運算的線性關(guān)系矩陣與matlab自帶的函數(shù)所用矩陣為同一個,所以與matlab自帶函數(shù)rgb2ntsc(ntsc2rgb)實現(xiàn)效果一

28、樣,每一層的數(shù)據(jù)相差很小。RGB to NTSC輸入的RGB 圖像可以是uint8、uint16 或double 類。輸出圖像是大小為M×N×3的double 類數(shù)組。NTSC to RGB 輸入輸出都是double類型。</p><p>  2.12 YCbCr(YUV模擬)與GRB彩色空間轉(zhuǎn)換</p><p>  根據(jù)Y,Cb,Cr與R.G.B分量之間的線性關(guān)系。編

29、寫程序如下:</p><p>  RGB to YCbCr:</p><p>  yuanshi=imread('C:\Users\xx\Desktop\68485-106.jpg');</p><p>  origT = [65.481 128.553 24.966; -37.797 -74.203 112;112 -93.786 -18.214]

30、;</p><p>  origOffset = [16;128;128];</p><p>  scaleFactor.uint8.T = 1/255; % scale input so in range [0 1].</p><p>  scaleFactor.uint8.offset = 1; % output is already in

31、 range [0 255].</p><p>  scaleFactor.uint16.T = 257/65535; % scale input so it is in range [0 1]</p><p>  scaleFactor.uint16.offset = 257; % scale output so it is in range [0 65535].</p>

32、;<p>  classIn = class(yuanshi);</p><p>  T = scaleFactor.(classIn).T * origT;</p><p>  offset = scaleFactor.(classIn).offset * origOffset;</p><p>  for p = 1:3</p>&l

33、t;p>  ycbcr(:,:,p) = imlincomb(T(p,1),yuanshi(:,:,1),T(p,2),yuanshi(:,:,2),T(p,3),yuanshi(:,:,3),offset(p));</p><p><b>  end </b></p><p>  imshow(ycbcr)</p><p><b&

34、gt;  end</b></p><p>  2.同理,對前面提到的矩陣取逆矩陣(YCbCr to RGB),編寫程序:</p><p>  T = [65.481 128.553 24.966; -37.797 -74.203 112; 112 -93.786 -18.214]; </p><p>  Tinv = T^-1;</p>&

35、lt;p>  offset = [16;128;128];</p><p>  scaleFactor.double.T = 255; % scale input so it is in range [0 255].</p><p>  scaleFactor.double.offset = 1; % output already in range [0 1].&l

36、t;/p><p>  scaleFactor.uint8.T = 255; % scale output so it is in range [0 255].</p><p>  scaleFactor.uint8.offset = 255; % scale output so it is in range [0 255].</p><p>  sca

37、leFactor.uint16.T = 65535/257; % scale input so it is in range [0 255] </p><p>  % (65535/257 = 255), </p><p>  % and scale output so it is in range </p><p>  % [0 65535].</p>

38、<p>  scaleFactor.uint16.offset = 65535; % scale output so it is in range [0 65535].</p><p>  classIn = class(ycbcr);</p><p>  T = scaleFactor.(classIn).T * Tinv;</p><p>  of

39、fset = scaleFactor.(classIn).offset * Tinv * offset;</p><p>  rgb = zeros(size(ycbcr),classIn);</p><p>  for p = 1:3</p><p>  rgb(:,:,p) = imlincomb(T(p,1),ycbcr(:,:,1),T(p,2),ycbcr

40、(:,:,2),T(p,3),ycbcr(:,:,3),-offset(p));</p><p><b>  end </b></p><p>  imshow(rgb)</p><p><b>  end </b></p><p>  其中YCbCr與RGB的相互轉(zhuǎn)換程序參考了Matlab r2

41、013b自帶的相關(guān)轉(zhuǎn)換函數(shù),ycbcr to rgb和 rgb to ycbcr的關(guān)鍵步驟。省略了某些對于輸入rgb圖像的相關(guān)參數(shù),例如輸入圖像必須是uint8 圖像,由于測試時,輸入圖像就是uint8的,故沒有進(jìn)行轉(zhuǎn)換。而且輸入與輸出圖像類型相同。</p><p>  2.13 CMY(CMYK)與GRB彩色空間轉(zhuǎn)換</p><p>  1.RGB to CMY程序如下:</p&g

42、t;<p>  yuanshi =imread('C:\Users\xx\Desktop\218076-106.jpg');</p><p>  R = im2double(yuanshi(: , : , 1));</p><p>  G = im2double(yuanshi(: , : , 2));</p><p>  B = im

43、2double(yuanshi(: , : , 3));</p><p>  cmy(:,:,1)=1-R;</p><p>  cmy(:,:,2)=1-G;</p><p>  cmy(:,:,3)=1-B;</p><p>  imshow(cmy)</p><p>  2. CMY to RGB程序如下:<

44、;/p><p>  rgb(: , : , 1)=1-cmy(:,:,1);</p><p>  rgb(: , : , 2)=1-cmy(:,:,2);</p><p>  rgb(: , : , 3)=1-cmy(:,:,3);</p><p>  imshow(rgb)</p><p>  CMY與RGB的轉(zhuǎn)換是相對

45、簡單的,但對于分量要進(jìn)行歸一化處理,即控制其范圍在(0,1)。</p><p>  2.14 HSI與GRB彩色空間轉(zhuǎn)換</p><p>  1.RGB to HIS 程序:</p><p>  yuanshi=imread('C:\Users\xx\Pictures\lovewallpaper\68485-106.jpg');</p>

46、<p>  yuanshi = im2double(yuanshi);</p><p>  r = yuanshi(:, :, 1);</p><p>  g = yuanshi(:, :, 2);</p><p>  b = yuanshi(:, :, 3);</p><p>  num = 0.5*((r-g) + (r-b)

47、);</p><p>  den = sqrt((r-g).^2 + (r-b).*(g-b));</p><p>  theta = acos(num./(den + eps));</p><p>  H = theta;</p><p>  H(b > g) = 2*pi-H(b > g);</p><p&

48、gt;  H = H/(2*pi);</p><p>  num = min(min(r, g), b);</p><p>  den = r + g + b;</p><p>  den(den == 0) = eps;</p><p>  S = 1-3.* num./den;</p><p>  H(S == 0

49、) = 0;</p><p>  I = (r + g + b)/3;</p><p>  HSI= cat(3, H, S, I);</p><p>  imshow(HSI)</p><p>  HIS to RGB 程序如下:</p><p>  H = HSI(:, :, 1) * 2 * pi;</p&

50、gt;<p>  S = HSI(:, :, 2);</p><p>  I = HSI(:, :, 3);</p><p>  R = zeros(size(hsi, 1), size(hsi, 2));</p><p>  G = zeros(size(hsi, 1), size(hsi, 2));</p><p>  B

51、= zeros(size(hsi, 1), size(hsi, 2));</p><p>  % RG sector (0 <= H < 2*pi/3).</p><p>  idx = find( (0 <= H) & (H < 2*pi/3));</p><p>  B(idx) = I(idx) .* (1-S(idx));&l

52、t;/p><p>  R(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx))./cos(pi/3-H(idx)));</p><p>  G(idx) = 3*I(idx)-(R(idx) + B(idx));</p><p>  % BG sector (2*pi/3 <= H < 4*pi/3).</p>

53、<p>  idx = find( (2*pi/3 <= H) & (H < 4*pi/3) );</p><p>  R(idx) = I(idx) .* (1-S(idx));</p><p>  G(idx) = I(idx) .* (1 + S(idx) .* cos(H(idx)-2*pi/3)./cos (pi-H(idx)));</p&g

54、t;<p>  B(idx) = 3*I(idx)-(R(idx) + G(idx));% BR sector.</p><p>  idx = find( (4*pi/3 <= H) & (H <= 2*pi));</p><p>  G(idx) = I(idx).* (1-S(idx));</p><p>  B(idx)=I

55、(idx).*(1+ S(idx).* cos(H(idx)-4*pi/3)./cos(5*pi/3-H(idx)));</p><p>  R(idx) = 3*I(idx)-(G(idx) + B(idx));</p><p>  rgb = cat(3, R, G, B);</p><p>  rgb = max(min(rgb, 1), 0);</p&

56、gt;<p>  imshow(rgb)</p><p>  HSI一個理想的彩色空間,由RGB空間轉(zhuǎn)換到HIS空間內(nèi)同樣需要把R,G,B三個分量歸一化到(0,1).同時兩空間轉(zhuǎn)換的關(guān)系較為復(fù)雜,尤其是從HIS空間到RGB空間的轉(zhuǎn)換,需要對HSI的H分量進(jìn)行了不同范圍的討論。</p><p><b>  第三章 </b></p><p

57、><b>  總結(jié)</b></p><p>  不同彩色空間轉(zhuǎn)換的根據(jù)就是不同彩色空間的各分量之間的線性關(guān)系,或是近似的線性關(guān)系,通過對應(yīng)的變換矩陣,對輸入的RGB圖像或是其他彩色空間的圖像進(jìn)行相互轉(zhuǎn)換,除了上邊介紹的常見的彩色模型以外,還有用于獨立設(shè)備的其他彩色空間。</p><p><b>  背景</b></p><

58、;p>  在辨別不同顏色時使用的特征是亮度、色調(diào)和飽和度,因此,彩色是由顏色和亮度表現(xiàn)的特性。為形成一種特殊顏色而需要的紅、綠、藍(lán)顏色叫做三色值。用得最廣泛的獨立于設(shè)備的三色值彩色空間之一是1931 年提出的CIE XYZ 彩色空間。在CIE XYZ 彩色空間中,Y 被選為特定亮度的度量。由Y 以及顏色值x 和y 定義的彩色空間被稱為xyY 彩色空間。</p><p><b>  sRGB 彩色空

59、間</b></p><p>  RGB 彩色模型依賴于設(shè)備。這意味著對于給定的一組R、G、B 值,不存在單一、明確的彩色解釋。另外,圖像文件常常不包含獲取圖像時所用設(shè)備的彩色特性信息。就像結(jié)果那樣,相同的圖像文件可能(經(jīng)常就是)在不同的計算機系統(tǒng)中看上去明顯不同,為解決這個問題,微軟和惠普提出了新的默認(rèn)彩色空間標(biāo)準(zhǔn),稱作sRGB。</p><p><b>  參考文獻(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論