如何使用、显示、修改和如何创建用户自己的颜色映象。然后,阐述在一个 图形窗口
中仿真多个颜色映象的技术或只使用颜色映象的一部分的技术。最后,讨论照明模型并提供例子。
颜色映象理解
MATLAB 有一个叫颜色映象 的数据结构来代表颜色值。颜色映象定义为一个有三列和若干行的矩阵。利用 0 到 1
之间的数,矩阵的每一行都代表了一种色彩。任一行的数字都指定了一个 RGB
值,即红、黄、蓝三种颜色的强度,形成一种特定的颜色。一些有代表性的 RGB 值在下表中给出。
Red(红)
Green(绿)
Blue(蓝)
颜色
0
0
0
黑
1
1
1
白
1
0
0
红
0
1
0
绿
0
0
1
蓝
1
1
0
黄
1
0
1
洋红
0
1
1
青蓝
0.667
0.667
1
天蓝
1
0.5
0
橘黄
0.5
0
0
深红
0.5
0.5
0.5
灰色
有十个 MATLAB 函数产生预定的颜色映象:
hsv
色彩饱和值
hot
从黑到红到黄道白
cool
青蓝和洋红的色度
pink
粉红的彩色度
bone
带一点蓝色的灰度
jet
hsv的一种变形(以蓝色开始和结束)
copper
线性铜色度
prim
三棱镜。交替为红,橘黄,黄,绿,天蓝
flag
交替为红,白,蓝,黑
gray
x线性灰度
按缺省,上面所列的各个颜色映象产生一个 64 × 3 的矩阵,指定了 64 种颜色 RGB
的描述。这些函数都接受一个参量来指定所产生矩阵的行数。比如 hot(m) 产生一个 m × 3 的矩阵,它包含的 RGB
颜色值的范围从黑经过红、橘红和黄,到白。
大多数计算机在一个 8 位的硬件查色表中一次可以显示 256
种颜色,当然有些计算机的显示卡可以同时显示更多的颜色。这就意味着在不同的图中,一般一次可以用三或四个 64 × 3
的颜色映象。如果使用了更多的颜色映象输入项,计算机必须经常在它的硬件查色表中调出输入项。比如,当在画 MATLAB
图形时背景图案发生了变化,就是发生了这种情况。所以,除非计算机有一次显示更多种颜色的显示卡,最好任何一次所用的颜色映象输入项数都小于
256 。
颜色映象使用 :
语句 colormap(M ) 将矩阵 M 作为当前图形窗口所用的颜色映象。例如, colormap ( cool ) 装入了一个有
64 个输入项的 cool 颜色映象。
colormap default 装入了缺省的颜色映象( hsv ) 。
函数 plot 、 plot3 、 contour 和 contour3 不使用颜色映象,它们使用列在 plot
颜色和线形表中的颜色。而大多数其它绘图函数,比如 mesh 、 surf 、 fill 、 pcolor
和它们的各种变形函数,使用当前的颜色映象。
接受 颜色参量 的绘图函数中的 颜色参量 通常采用以下三种形式之一:
( 1 )字符串。代表 plot 颜色或线型表中的一种颜色,比如, ’ r ‘ 代表红色;
( 2 )三个输入的行向量。它代表一个单独的 RGB 值,比如
[.25 .50 .75] ;
( 3 )矩阵。如果 颜色参量 是一个矩阵,其元素作了调整,并把它们用作当前颜色映象的下标。
函数 pcolor可以用来显示一个颜色映象。例如:
» n=32;
» colormap(hsv(n))
» pcolor([1:n+1;1:n+1] ’ )