(整理)MATLAB图像显示与格式转换.

(整理)MATLAB图像显示与格式转换.
(整理)MATLAB图像显示与格式转换.

第五讲M A T L A B可视化(三)

图像显示

M a t l a b进行图像处理的步骤如下:

↓↓

【目录】

一、图像文件格式 (2)

1、调色板 (2)

2、图像类型 (2)

3、图像文件格式 (3)

二、读图像和图像信息 (3)

1、读取图像 (3)

2、读取图像信息 (4)

三、图像类别与数据格式 (6)

四、图像显示 (8)

1、i m s h o w(I,n) (8)

2、i m s h o w(I,[l o w,h i g h]) (9)

3、i m s h o w(B W) (10)

4、i m s h o w(X,M A P) (14)

5、i m s h o w(R G B) (15)

6、i m s h o w f i l e n a m e (16)

7、s u b i m a g e (17)

五、保存图像 (18)

1、i m w r i t e函数 (18)

六、图像数据格式转换 (18)

1、索引图像 (19)

2、灰度图像 (19)

3、真彩色图像 (19)

4、二值图像 (20)

【正文】

一、图像文件格式

1、调色板

调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。

调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。

真彩图像的每个像素直接用R、G、B三个字节来表示颜色,因此不需要调色板。

2、图像类型

3、图像文件格式

二、读图像和图像信息

1、读取图像

函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。格式为:

[X,M A P]=i m r e a d(F I L E N A M E,'F M T'),其中:

F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。

【例】图像读取演示

[X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f');

[X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f');

[X3,M A P3]=i m r e a d('演示图像-256色.t i f');

[X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f');

[X5,M A P5]=i m r e a d('演示图像-24位色.t i f');

[X6,M A P6]=i m r e a d('演示图像-48位色.t i f');

w h o s

N a m e S i z e B y t e s C l a s s

M A P10x00d o u b l e a r r a y

M A P20x00d o u b l e a r r a y

M A P3256x36144d o u b l e a r r a y

M A P40x00d o u b l e a r r a y

M A P50x00d o u b l e a r r a y

M A P60x00d o u b l e a r r a y

X1427x427182329l o g i c a l a r r a y

X2427x427182329u i n t8a r r a y

X3427x427182329u i n t8a r r a y

X4427x427364658u i n t16a r r a y

X5427x427x3546987u i n t8a r r a y

X6427x427x31093974u i n t16a r r a y

G r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s

2、读取图像信息

可以通过调用i m f i n f o函数获得与图像文件有关的信息,格式如下:

I N F O=i m f i n f o(F I L E N A M E,'F M T')其中:

返回的I N F O是M a t l a b的一个结构体。

【例】查看图像信息

I N F O=i m f i n f o('演示图像-48位色.t i f')

I N F O=

F i l e n a m e:[1x36c h a r]

F i l e M o d D a t e:'23-M a y-200422:14:23'

F i l e S i z e:1107548

F o r m a t:'t i f'

F o r m a t V e r s i o n:[]

W i d t h:427

H e i g h t:427

B i t D e p t h:48

C o l o r T y p e:'t r u e c o l o r'

F o r m a t S i g n a t u r e:[7373420]

B y t e O r d e r:'l i t t l e-e n d i a n'

N e w S u b f i l e T y p e:0

B i t s P e r S a m p l e:[161616]

C o m p r e s s i o n:'U n c o m p r e s s e d'

P h o t o m e t r i c I n t e r p r e t a t i o n:'R G B'

S t r i p O f f s e t s:13528

S a m p l e s P e r P i x e l:3

R o w s P e r S t r i p:427

S t r i p B y t e C o u n t s:1093974

X R e s o l u t i o n:2.7115

Y R e s o l u t i o n:2.7115

R e s o l u t i o n U n i t:'I n c h'

C o l o r m a p:[]

P l a n a r C o n f i g u r a t i o n:'C h u n k y'

T i l e W i d t h:[]

T i l e L e n g t h:[]

T i l e O f f s e t s:[]

T i l e B y t e C o u n t s:[]

O r i e n t a t i o n:1

F i l l O r d e r:1

G r a y R e s p o n s e U n i t:0.0100

M a x S a m p l e V a l u e:[655356553565535]

M i n S a m p l e V a l u e:0

T h r e s h o l d i n g:1

N e w S u b F i l e T y p e:0

S o f t w a r e:'A d o b e P h o t o s h o p7.0'

D a t e T i m e:'2004:05:2322:14:23'

三、图像类别与数据格式

组大小:m×n 素值:[0,1]阵:p×3

素值:[0,1]图像数组大小:m×n

图像元素值:[0,255]

色度矩阵:p×3

色度元素值:[0,1]

图像数组

图像元素

色度矩阵

色度元素

四、图像显示

M a t l a b 的图像显示函数主要有i m s h o w 、c o l o r b a r 和s u b i m a g e 三个。

1、i m s h o w (I ,n )

显示灰度级为n 的图像,n 缺省为256。

【例】按256灰度级显示

I=i m r e a d('m o o n.t i f');

i m s h o w(I,256)

250

200

150

100

50

度级显示

I=i m r e a d('m o o n.t i f');

i m s h o w(I,8)

250

200

150

100

50

I,[l o w,h i g h])

以灰度范围[l o w,h i g h]显示图像,如果不知道灰度范围,可以用

i m s h o w(I,[])显示。

【例】按最大灰度范围显示

I=i m r e a d('m o o n.t i f');

i m s h o w(I,[])

250

200

150

100

50

灰度范围显示

I=i m r e a d('m o o n.t i f');

i m s h o w(I,[64,128])

120

110

100

90

80

70

B W)

显示二值图像。

【例】双精度灰度图像

b w1=z e r o s(100,100);

b w1(2:2:98,2:2:98)=1;

i m s h o w(b w1);

w h o s b w1

N a m e S i z e B y t e s C l a s s

b w1100x10080000d o u b l e a r r a y

G r a n d t o t a l i s10000e l e m e n t s u s i n g80000b y t e s

【例】8位的灰度图像

b w1=z e r o s(100,100);

b w1(2:2:98,2:2:98)=1;

b w2=u i n t8(b w1);

i m s h o w(b w2,[]);

c o l o r b a r

w h o s b w2

N a m e S i z e B y t e s C l a s s

b w2100x10010000u i n t8a r r a y

1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

值图像

b w1=z e r o s(100,100);

b w1(2:2:98,2:2:98)=1;

b w2=u i n t8(b w1);

b w3=b w2~=0;

i m s h o w(b w3);

w h o s b w3

N a m e S i z e B y t e s C l a s s

b w3100x10010000l o g i

c a l a r r a y

G r a n d t o t a l i s10000e l e m e n t s u s i n g10000b y t e s

【例】显示二值图像

B W=i m r e a d('c i r c l e s.t i f');

i m s h o w(B W);

【例】取反显示二值图像

B W=i m r e a d('c i r c l e s.t i f');

i m s h o w(~B W);

【例】显示二值图像

c l f

B W=i m r e a d('c i r c l e s.t i f');

i m s h o w(B W,[100;001]);

4、i m s h o w(X,M A P)

显示索引图像,X为数据图像矩阵,M A P为调色板。【例】显示索引图像

[X,M A P]=i m r e a d('c a n o e.t i f');

i m s h o w(X,M A P);

c o l o r b a r

250

200

150

100

50

显示伪彩色图像

I=i m r e a d('m o o n.t i f');

i m s h o w(I,j e t(256))

250

200

150

100

50

R G B)

显示真彩色图像。

【例】

r g b=i m r e a d('f l o w e r s.t i f');

i m s h o w(r g b);

6、i m s h o w f i l e n a m e

直接显示图像。

【例】直接显示图像

i m s h o w('m o o n.t i f');

I=g e t i m a g e;

w h o s I

N a m e S i z e B y t e s C l a s s

I537x358192246u i n t8a r r a y

G r a n d t o t a l i s192246e l e m e n t s u s i n g192246b y t e s

moon.tif

7、s u b i m a g e

多图显示多个调色板的图像。

【例】

l o a d t r e e s ;

[x 2,m a p 2]=i m r e a d ('f o r e s t .t i f ');

s u b p l o t (2,1,1),s u b i m a g e (X ,m a p );c o l o r b a r 50

100

150

200

250

300

350

50100150200250

50

100150200250

50

100

150

200

250

300

350

400

50100

150200250300

50100150

200

250

函数显示多图

l o a d t r e e s ;

[x 2,m a p 2]=i m r e a d ('f o r e s t .t i f ');

s u b p l o t (2,1,1),i m s h o w (x 2,m a p 2);c o l o r b a r s u b p l o t (2,1,2),i m s h o w (X ,m a p );c o l o r b a r

50

1001502002501、i m w r i t e 函数

i m w r i t e (I ,'文件名','文件格式')-保存无调色板的图像 i m w r i t e (X ,M A P ,'文件名','文件格式')-保存有调色板的图像 i m w r i t e (...,'文件名')-文件名中含格式 i m w r i t e (...,'参数','值')-指定保存参数 文件格式:b m p 、j p g 、p c x 、t i f 。

【例】将t i f 图像保存为j p g 图像

[x ,m a p ]=i m r e a d ('c a n o e .t i f ');

i m w r i t e (x ,m a p ,'c a n o e .j p g ','J P G ','Q u a l i

t y ',75)

六、图像数据格式转换

假设:X8-表示8位的索引图像,X16-表示16位的索引图像,X64-表示双精度的索引图像,则有:

X64=d o u b l e(X8)+1-u i n t8格式转d o u b l e格式

X64=d o u b l e(X16)+1-u i n t16格式转d o u b l e格式

X8=u i n t8(X64-1)-d o u b l e格式转u i n t8格式

X16=u i n t16(X64-1)-d o u b l e格式转u i n t16格式

X8=u i n t8(X16)-u i n t16格式转u i n t8格式

X16=u i n t16(X8)-u i n t8格式转u i n t16格式

2、灰度图像

假设:I8-表示8位的灰度图像,I16-表示16位的灰度图像,I64-表示双精度的灰度图像,则有:

I64=d o u b l e(I8/255)-u i n t8格式转d o u b l e格式

I64=d o u b l e(I16/65535)-u i n t16格式转d o u b l e格式

I8=u i n t8(r o u n d(I64*255))-d o u b l e格式转u i n t8格式

I16=u i n t16(r o u n d(I64*65535))-d o u b l e格式转u i n t16格式

I8=u i n t8(r o u n d(I16/257))-u i n t16格式转u i n t8格式

I16=u i n t16(r o u n d(I8*257))-u i n t8格式转u i n t16格式

3、真彩色图像

假设:R G B8-表示8位的真彩图像,R G B16-表示16位的真彩图像,R G B64-表示双精度的真彩图像,则有:

R G B64=d o u b l e(R G B8/255)-u i n t8格式转d o u b l e格式

R G B64=d o u b l e(R G B16/65535)-u i n t16格式转d o u b l e格式

R G B8=u i n t8(r o u n d(R G B64*255))-d o u b l e格式转u i n t8格式

R G B16=u i n t16(r o u n d(R G B64*65535))-d o u b l e格式转u i n t16格式R G B8=u i n t8(r o u n d(R G B16/257))-u i n t16格式转u i n t8格式

R G B16=u i n t16(r o u n d(R G B8*257))-u i n t8格式转u i n t16格式

假设B W8表示8位二值图像,B W64表示双精度二值图像,则有:B W64=d o u b l e(B W8)u i n t8格式转d o u b l e格式

B W8=u i n t8(B W64)~=0d o u b l e格式转u i n t8格式

p l o t3(X,Y,Z,'b o')

相关主题
相关文档
最新文档