slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
數位影像處理 第十三章 色彩處理 PowerPoint Presentation
Download Presentation
數位影像處理 第十三章 色彩處理

Loading in 2 Seconds...

play fullscreen
1 / 20

數位影像處理 第十三章 色彩處理 - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

數位影像處理 第十三章 色彩處理. 13.1 何謂色彩 13.2 色彩模型 13.3 MATLAB 的色彩影像 13.4 虛擬上色 13.5 彩色影像處理. 13.1 何謂色彩. 人類的視覺系統一般來說,會將色彩分為不同份量的紅、綠、藍混合起來的結果,因此紅、綠、藍稱為三原色,將任二原色混合後得到的是第二次色 : 紫紅 ( 紫 )= 紅 + 藍 青綠 = 綠 + 藍 黃 = 紅 + 綠. RGB 對色函數. 13.1 何謂色彩.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '數位影像處理 第十三章 色彩處理' - gates


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
數位影像處理第十三章 色彩處理

13.1 何謂色彩

13.2 色彩模型

13.3 MATLAB的色彩影像

13.4 虛擬上色

13.5 彩色影像處理

slide2
13.1 何謂色彩
  • 人類的視覺系統一般來說,會將色彩分為不同份量的紅、綠、藍混合起來的結果,因此紅、綠、藍稱為三原色,將任二原色混合後得到的是第二次色:

紫紅(紫)=紅+藍

青綠=綠+藍

黃=紅+綠

RGB對色函數

slide3
13.1 何謂色彩
  • 某些波長中的紅、綠、藍色值為負數,實際上不可能會有這樣的結果,不過可以看成色源再加上其他原色光束,以維持對色。為了除去色彩中的負數值,CIE採用XYZ色彩模型,XYX可以透過線性轉換與從對應的RGB數值得到。

XYZ對色函數

slide4
13.1 何謂色彩
  • 一般來說,組成特定顏色的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表示,稱為色度座標。

slide5
13.1 何謂色彩
  • 知道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

色度圖

slide6
13.2 色彩模型
  • 色彩模型是以某種標準的方式分辨顏色的方法, 基本上是由三維座標與一個子空間所組成,在這子空間中,一個點便代表一個色彩。
  • 要定義出色域,首先產生一個100X100X3的陣列,陣列中的每個點都對應一個XYZ數值(i/100 , j/100 , 1-i/100-j/100) ,然後計算對應RGB值,若為負數,輸出為白色:
slide7
13.2 色彩模型
  • 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色域

slide8
13.2 色彩模型
  • 色調(Hue) ,飽和度(Saturation) ,明暗度(Value) ,縮寫為HSA 。
  • 色調(Hue):[全彩]的屬性(紅、綠、藍、橘等) 。
  • 飽和度(Saturation):色彩被白色稀釋的程度。色彩中含有白色越多,飽和度變越低,因此深紅色飽和度高,亮紅色飽和度低。
  • 明暗度(Value):亮的顏色明暗度高,岸的顏色明暗度低。
13 3 matlab
13.3 MATLAB的色彩影像
  • 由於彩色影像的每個像素資訊都必須獨立分為三項,因此在MATLAB中,全彩影像可用三維陣列來表示,假設獨取一RGB影像:
  • >> x=imread('lily.tif');
  • >> size(x)
  • ans =
  • 186 230 3
  • >> figure,imshow(x(:,:,1))
  • >> figure,imshow(x(:,:,2))
  • >> figure,imshow(x(:,:,3))

紅色部分

綠色部分

藍色部分

13 3 matlab1
13.3 MATLAB的色彩影像
  • 轉換成YIQ或HSV ,再次檢視組成部分:
  • >> xh=rgb2hsv(x);
  • >> imshow(xh(:,:,1))
  • >> figure,imshow(xh(:,:,2))
  • >> figure,imshow(xh(:,:,3))

色調

明暗度

飽和度

13 3 matlab2
13.3 MATLAB的色彩影像
  • YIQ色彩空間:
  • >> xn=rgb2ntsc(x);
  • >> imshow(xn(:,:,1))
  • >> figure,imshow(xn(:,:,2))
  • >> figure,imshow(xn(:,:,3))

Y

I

Q

slide12
13.4 虛擬上色
  • 虛擬上色指的是對灰階影像上指定顏色,以便在視覺上凸顯影像的某些面向。
  • 明暗度切割:這個方法是將影像切割成幾個灰些範圍,每個範圍只定不同顏色:
slide13
13.4 虛擬上色
  • 在MATLAB中,要使用另外顏色來檢視影像,可以使用imshow ,並設定參數colormap 。

>> b=imread('blocks.tif');

>> imshow(b,colormap(jet(256)))

然而,色譜若選擇錯誤可能會破壞整個影像,例如將vga色譜代入就很不恰當,因為這個色譜只有16列,所以必須將影像灰階數目減至16 ,可以使用函數grayslice:

slide14
13.4 虛擬上色
  • >> b16=grayslice(b,16);
  • >> figure,imshow(b16,colormap(vga))
  • 我們也可以自行產生色譜必須產生三個

行的矩陣,每一列都是介於0.0與1.0之間的RGB值構成,使用下列指令產生色譜:

  • >> mycolormap=[0 0 1;1 0 1;0 1 0;1 0 0];
  • >> b4=grayslice(b,4);
  • >> imshow(b4,mycolormap)
slide15
13.5 彩色影像處理
  • 分別處理每個RGB矩陣。
  • 轉換色彩空間,將明暗度自色彩資訊抽離,單獨處理明暗度部分。
  • 加強比對:透過明暗度部份處裡,可以獲得對比加強效果。
slide16
13.5 彩色影像處理
  • 轉全彩(RGB)影像:

>> [x,map]=imread('emu.tif');

>> c=ind2rgb(x,map);

RGB轉YIQ以便取明暗度部分:

>> cn=rgb2ntsc(c);

將明暗度部分帶入直方圖均化,然後轉回RGB方便顯示:

>> cn(:,:,1)=histeq(cn(:,:,1));

>> c2=ntsc2rgb(cn);

>> imshow(c2)

將RGB各個部份帶入直方圖均化:

>> cr=histeq(c(:,:,1));

>> cg=histeq(c(:,:,2));

>> cb=histeq(c(:,:,3));

全部放入單一三維陣列顯示:

>> c3=cat(3,cr,cg,cb);

>> imshow(c3)

RGB

轉直方圖均化RGB

單一三維陣列

slide17
13.5 彩色影像處理
  • 空間濾波:

低通

>> a15=fspecial('average',15);

>> cr=filter2(a15,c(:,:,1));

>> cg=filter2(a15,c(:,:,2));

>> cb=filter2(a15,c(:,:,3));

>> blur=cat(3,cr,cg,cb);

>> imshow(blur)

高通

>>cn=rab2ntsc(c);

>>a=fspecial(‘unsharp’);

>>cn(:,:,1)=filter2(a,cn(:,:,1));

>>cu=ntsc2rgb(cn);

>> imshow(cu)

低通

高通

slide18
13.5 彩色影像處理
  • 去除雜訊:

使用色彩影像處理

tw=imread('twins.tif');

加入雜訊

tn=imnoise(tw,'salt & pepper');

figure,imshow(tn(:,:,1))

figure,imshow(tn(:,:,2))

figure,imshow(tn(:,:,3))

將各RGB部分帶入中位數濾波器

trm=medfilt2(tn(:,:,1));

tgm=medfilt2(tn(:,:,2));

tbm=medfilt2(tn(:,:,3));

tm=cat(3,trm,tgm,tbm);

imshow(tm)

雜訊紅色部分

雜訊綠色部分

雜訊藍色部分

slide19
13.5 彩色影像處理

只除去y部分雜訊

tnn=rgb2ntsc(tn);

tnn(:,:,1)=medfilt2(tnn(:,:,1));

tm2=ntsc2rgb(tnn);

imshow(tm2)

去除RGB各部份雜訊

除去y部分雜訊

slide20
13.5 彩色影像處理
  • 邊緣檢測:

使用函數rgb2gray

f=imread('flowers.tif');

fg=rgb2gray(f);

fe1=edge(fg);

imshow(fe1)

使用邏輯運算子or合併結果

f1=edge(f(:,:,1));

f2=edge(f(:,:,2));

f3=edge(f(:,:,3));

fe2=f1 |f2| f3;

figure,imshow(fe2)

fe1

fe2