第六讲图像类型与彩色模型的转换【目录】一、图像类型的转换 (1)1、真彩图像→索引图像 (3)2、索引图像→真彩图像 (3)3、真彩图像→灰度图像 (4)4、真彩图像→二值图像 (4)5、索引图像→灰度图像 (5)6、灰度图像→索引图像 (6)7、灰度图像→二值图像 (7)8、索引图像→二值图像 (8)9、数据矩阵→灰度图像 (9)二、彩色模型的转换 (9)1、图像的彩色模型 (10)2、彩色转换函数 (10)三、纹理映射 (13)【正文】一、图像类型的转换1、真彩图像→索引图像【格式】X =d i t h e r (R G B ,m a p )【说明】按指定的颜色表m a p 通过颜色抖动实现转换 【输入】R G B 可以是d o u b l e 或u i n t 8类型【输出】X 超过256色则为d o u b l e 类型,否则输出为u i n t 8型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); 1002003004005005010015020025030035010020030040050050100150200250300350【输出】R G B 为d o u b l e 类型【例】C L F ,l o a d t r e e s ; R G B =i n d 2r g b (X ,m a p );s u b p l o t (1,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (1,2,2);s u b i m a g e (R G B );t i t l e ('真彩图')1002003005010015020025010020030050100150200250真彩图像→灰度图像【例】1002003004005005010015020025030035010020030040050050100150200250300350真彩图像→二值图像【输出】B W 为u i n t 8型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f ');1002003004005005010015020025030035010020030040050050100150200250300350索引图像→灰度图像【输入】X 可以是d o u b l e 或u i n t 8类型,m a p 为d o u b l e 类型 【输出】I 是d o u b l e 类型,N e w m a p 为d o u b l e 类型【例】C L F ,l o a d t r e e s ; I =i n d 2g r a y (X ,m a p ); N e w m a p =r g b 2g r a y (m a p );s u b p l o t (2,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (2,2,3);s u b i m a g e (I );t i t l e ('格式1灰度图')s u b p l o t (2,2,4);s u b i m a g e (X ,N e w m a p );t i t l e ('格式2灰度图')100200300501001502002501002003005010015020025010020030050100150200250灰度图像→索引图像【格式1】1、[X ,m a p ]=g r a y 2i n d (I ,n )2、X =g r a y s l i c e (I ,n )3、X =g r a y s l i c e (I ,v )【说明】格式1:将灰度图像转换为灰度级为n 的索引图像X ,n 的默认值为64;格式2:将灰度图像I 均匀量化为n 个等级,然后转换为伪彩色图像X ;格式3:按指定的阈值矢量v (其中每个元素在0和1之间)对图像I 进行阈值划分,然后转换成索引图像【输入】I 可以是d o u b l e 类型、u i n t 8类型和u i n t 16类型【输出】m a p 的行不大于256,则X 为u i n t 类型,否则为d o u b l e 类型【例】C L F ,I =i m r e a d ('r i c e .t i f '); [X 1,m a p 1]=g r a y 2i n d (I ,16);X 2=g r a y s l i c e (I ,8);X 3=g r a y s l i c e (I ,255*[0 0.21 0.23 0.26 0.30 0.35 0.6 1.0]'); s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图')s u b p l o t (2,2,2);s u b i m a g e (X 1,m a p 1);t i t l e ('16灰度级图') s u b p l o t (2,2,3);s u b i m a g e (X 2,h o t (8));t i t l e ('均匀量化图') 501001502002505010015020025016灰度级图5010015020025050100150200250均匀量化图5010015020025050100150200250非均匀量化图5010015020025050100150200250度图像→二值图像【格式一】B W =d i t h e r (I );【格式一】B W =i m 2b w (I ,l e v e l ) 【说明】格式一用抖动的方式实现转换,格式二用阈值方式转换 【输入】I 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,I =i m r e a d ('s a t u r n .t i f '); B W 1=d i t h e r (I ); B W 2=i m 2b w (I ,0.5);s u b p l o t (2,2,1);s u b i m a g e (I );t i t l e ('灰度图') s u b p l o t (2,2,3);s u b i m a g e (B W 1);t i t l e ('抖动二值化') 10020030040050100150200250300抖动二值化1002003004005010015020025030010020030040050100150200250300索引图像→二值图像【格式】B W =i m 2b w (X ,m a p ,l e v e l )【输入】X 可以是d o u b l e 类型和u i n t 8类型 【输出】B W 为u i n t 8类型【例】C L F ,l o a d t r e e s ; B W =i m 2b w (X ,m a p ,0.5);s u b p l o t (1,2,1);s u b i m a g e (X ,m a p );t i t l e ('索引图') s u b p l o t (1,2,2);s u b i m a g e (B W );t i t l e ('二值图')1002003005010015020025010020030050100150200250数据矩阵→灰度图像如不指定区间,自动取最大区间。
【输入】A 为d o u b l e 类型 【输出】I 为d o u b l e 类型【例】C L F ;I =i m r e a d ('r i c e .t i f '); A =f i l t e r 2(f s p e c i a l ('s o b e l '),I ); 50100150200250501001502002505010015020025050100150200250彩色模型的转换1、图像的彩色模型(1)R G B模型是色光的彩色模式,R代表红色,G代表绿色,B代表蓝色,通常所说的真彩色。
(2)N T S C模型N T S C模型用于电视信号。
其特点是亮度信号与色度信号相分离。
一个信号能同时表示彩色图像和黑白图像。
他的Y表示亮度,I表示色度,Q表示饱和度。
(3)H S V模型根据人眼的视觉特性表示的颜色,H表示色调,S表示饱和度,V表示明度。
(4)Y C b C r模型一种彩色模型,Y表示亮度信号,C b、C r两个色度分量。
2、彩色转换函数(1)R G B颜色空间转换到N T S C颜色空间【格式】Y I Q M A P=r g b2n t s c(R G B M A P)【说明】将R G B色表转换为Y I Q色表【输入】R G B M A P为d o u b l e类型【输出】Y I Q M A P为d o u b l e类型【格式】Y I Q =r g b 2n t s c (R G B )【说明】表示将R G B 图像转换为N T S C 图像 【输入】R G B 为d o u b l e 、u i n t 8或u i n t 16类型 【输出】Y I Q 为d o u b l e 类型【例】C L F ,R G B =i m r e a d ('f l o w e r s .t i f '); Y I Q =r g b 2n t s c (R G B );s u b p l o t (2,3,1);s u b i m a g e (R G B );t i t l e ('R G B 图像')s u b p l o t (2,3,3);s u b i m a g e (m a t 2g r a y (Y I Q ));t i t l e ('N T S C 图像') s u b p l o t (2,3,4);s u b i m a g e (m a t 2g r a y (Y I Q (:,:,1)));t i t l e ('Y 分量')s u b p l o t (2,3,5);s u b i m a g e (m a t 2g r a y (Y I Q (:,:,2)));t i t l e ('I 分量')100200300400500100200300100200300400500100200300100200300400500100200300100200300400500100200300100200300400500100200300T S C 颜色空间转R G B 颜色 【说明】将Y I Q 色表转换为R G B 色表【输入】Y I Q M A P为d o u b l e类型【输出】R G B M A P为d o u b l e类型【格式】R G B=n t s c2r g b(Y I Q)【说明】表示将Y I Q图像转换为R G B图像【输入】Y I Q为d o u b l e类型【输出】R G B为d o u b l e类型【例】C L F,l o a d t r e e s;Y I Q M A P=r g b2n t s c(m a p);m a p1=n t s c2r g b(Y I Q M A P);Y I Q M A P=m a t2g r a y(Y I Q M A P);Y m a p=[Y I Q M A P(:,1),Y I Q M A P(:,1),Y I Q M A P(:,1)];I m a p=[Y I Q M A P(:,2),Y I Q M A P(:,2),Y I Q M A P(:,2)];Q m a p=[Y I Q M A P(:,3),Y I Q M A P(:,3),Y I Q M A P(:,3)];s u b p l o t(2,3,1);s u b i m a g e(X,m a p);t i t l e('原始图像')s u b p l o t(2,3,2);s u b i m a g e(X,Y I Q M A P);t i t l e('转换图像')s u b p l o t(2,3,3);s u b i m a g e(X,m a p1);t i t l e('还原图像')s u b p l o t(2,3,4);s u b i m a g e(X,Y m a p);t i t l e('N T S C的Y分量') s u b p l o t(2,3,5);s u b i m a g e(X,I m a p);t i t l e('N T S C的I分量') s u b p l o t(2,3,6);s u b i m a g e(X,Q m a p);t i t l e('N T S C的Q分量')100200300501001502002501002003005010015020025010020030050100150200250100200300501001502002501002003005010015020025010020030050100150200250g b 2h s v (4) h s v 2r g b(5) r g b 2y c b c r(6) y c b c r 2r g b三、纹理映射使用i m s h o w 命令时,M A T L A B 通常以二维视图形式显示一幅图像。