彩色影像處理 | 彩色影像處理
全彩影像可用三維陣列來表示,直接取一RGB影像x=imread(lily.tif);size(x)ans=1862303figure,imshow(x(:,:,1))figure,imshow(x(:,:,2))figure,imshow(x(:,:,3))轉換成YIQ或HSVxh=rgb2hsv(x);imshow(xh(:,:,1))figure,imshow(xh(:,:,2))figure,imshow(xh(:,:,3))YIQ色彩空間 xn=rgb2ntsc(x);imshow(xn(:,:,1))figure,imshow(xn(:,:,2))figure,imshow(xn(:,:,3))在MATLAB中,要使用另外顏色來檢視影像,可以使用imshow,並設定參數colormap。>>b=imread(blocks.tif);>>imshow(b,colormap(jet(256)))然而,色譜若選擇錯誤可...
全彩影像可用三維陣列來表示,直接取一RGB影像x=imread(lily.tif);size(x)ans =186 230 3figure,imshow(x(:,:,1))figure,imshow(x(:,:,2))figure,imshow(x(:,:,3))轉換成YIQ或HSVxh=rgb2hsv(x); imshow(xh(:,:,1)) figure,imshow(xh(:,:,2)) figure,imshow(xh(:,:,3))YIQ色彩空間 xn=rgb2ntsc(x); imshow(xn(:,:,1)) figure,imshow(xn(:,:,2)) figure,imshow(xn(:,:,3))在MATLAB中,要使用另外顏色來檢視影像,可以使用imshow ,並設定參數colormap 。>> b=imread(blocks.tif);
>> imshow(b,colormap(jet(256)))
然而,色譜若選擇錯誤可能會破壞整個影像,例如將vga色譜代入就很不恰當,因為這個色譜只有16列,所以必須將影像灰階數目減至16 ,可以使用函數grayslice:
•>> 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)•分別處理每個RGB矩陣。 •轉換色彩空間,將明暗度自色彩資訊抽離,單獨處理明暗度部分。 • •加強比對:透過明暗度部份處裡,可以獲得對比加強效果。•轉全彩(RGB)影像:
>> [x,map]=imread(emu.tif);
>> c=ind2rgb(x,map);
RGB轉YIQ以便取明暗度部分:
>> cn=rgb2nts...