对matlab中colormap的解释及fill、imshow的用法说明
2015-11-18 21:43
711 查看
这篇文章的主要目的在于对colormap的解释,会涉及到fill和imshow的使用,因此首先解释fill和imshow的用法。
例子1:
也可以用RGB的方法指定颜色
例子2:
顺便提一句,matlab里面有一个和fill功能相同的函数:patch,把fill替换成patch,效果一样
a = colormap
会发现a是一个N*3的矩阵,这个矩阵每一行代表一种颜色[r,g,b]其中r,g,b分别表示红绿蓝三种颜色的比例,0表示没有,1表示最多。相信大家都明白这种颜色表示法,我就不罗嗦了。
这个colormap矩阵实际上就是一种颜色的映射,1表示a(1,:)这种颜色,2表示a(2,:)这种颜色。下面这个一个矩阵,就用COLB表示吧
如果用这个矩阵作为colormap,那么1就表示红色,2就表示绿色,3就表示蓝色
为了能够做一个例子试一下这个colormap,就不得不提一个函数了:imshow。
imshow(A,map),这个A是矩阵。A中的每一个数就表示map矩阵中的一行,也就是每个像素点都有了一个RGB颜色。
例子1:
再来一个稍微高大上一点的:显示法国国旗的图片。法国国旗的颜色和尺寸我还特意去查了下
现在可以用fill显示复杂一点的颜色了:渐变色
我们想看看系统自带的几种colormap的颜色: spring, summer, autumn, winter
还记得fill函数的用法吗:fill(x, y, colorspec)
其中colorspec还可以有第三种用法,指定每个点的颜色。这时colorspec是一个向量,该向量的长度跟x,y长度一致,向量中最小的值表示1,向量中最大值表示colormap的行数,向量中其他值通过线性插值得出。这时多边形的每个点的颜色就确定了,多边形的其他点就是通过颜色的插值得到,这就相当于添加了渐变色。
下面是summer
下面是autumn
下面是winter
fill的用法说明
fill就是填充一个多边形区域。函数用法fill(x, y, colorspec),x是多边形各点的x坐标,y是多边形各点的y坐标,colorspec就是颜色指定,有两种颜色指定的方法。例子1:
x = [0, 0, 1, 1]; y = [0, 1, 1, 0]; fill(x, y, 'r'); %红色
也可以用RGB的方法指定颜色
x = [0, 0, 1, 1]; y = [0, 1, 1, 0]; fill(x, y, [0,0, 1]); %蓝色
例子2:
R = 10; theta = (1/16:1/8:1)*2*pi; x = R * cos(theta); y = R * sin(theta); fill(x, y, 'g');
顺便提一句,matlab里面有一个和fill功能相同的函数:patch,把fill替换成patch,效果一样
colormap到底是什么东西
如果在matlab命令行中输入a = colormap
会发现a是一个N*3的矩阵,这个矩阵每一行代表一种颜色[r,g,b]其中r,g,b分别表示红绿蓝三种颜色的比例,0表示没有,1表示最多。相信大家都明白这种颜色表示法,我就不罗嗦了。
这个colormap矩阵实际上就是一种颜色的映射,1表示a(1,:)这种颜色,2表示a(2,:)这种颜色。下面这个一个矩阵,就用COLB表示吧
ROLB = [ 1 0 0 0 1 0 0 0 1 ];
如果用这个矩阵作为colormap,那么1就表示红色,2就表示绿色,3就表示蓝色
为了能够做一个例子试一下这个colormap,就不得不提一个函数了:imshow。
imshow用法说明
imshow就是显示一个图片,这个图片是用一个矩阵表示的,矩阵维数表示这幅图片的像素大小,矩阵的数值就表示颜色。颜色的表示方法就与上面提到的colormap有关。imshow(A,map),这个A是矩阵。A中的每一个数就表示map矩阵中的一行,也就是每个像素点都有了一个RGB颜色。
例子1:
ROLB = [ 1 0 0 0 1 0 0 0 1]; a = zeros(300, 100); a(1:100, :) = 1; a(101:200,:) = 2; a(201:end, :) = 3; imshow(a, ROLB);
再来一个稍微高大上一点的:显示法国国旗的图片。法国国旗的颜色和尺寸我还特意去查了下
ROLB = [ 0,85/255,164/255 1,1,1 239/255,65/255,53/255]; a = zeros(200, 300); a(:, 1:100) = 1; a(:, 101:200) = 2; a(:, 201:300) = 3; imshow(a, ROLB); axis equal;
现在可以用fill显示复杂一点的颜色了:渐变色
我们想看看系统自带的几种colormap的颜色: spring, summer, autumn, winter
x = [0, 0, 1, 1]; y = [0, 1, 1, 0]; colormap spring; a = colormap; fill(x, y, [0, 0, 1, 1]); hold on; x1 = [0, 0, 0.2, 0.2]; y1 = [0, -0.2, -0.2, 0]; x2 = [0.8, 0.8, 1, 1]; y2 = [0, -0.2, -0.2, 0]; fill(x1, y1, a(1,:)); fill(x2, y2, a(end, :));
还记得fill函数的用法吗:fill(x, y, colorspec)
其中colorspec还可以有第三种用法,指定每个点的颜色。这时colorspec是一个向量,该向量的长度跟x,y长度一致,向量中最小的值表示1,向量中最大值表示colormap的行数,向量中其他值通过线性插值得出。这时多边形的每个点的颜色就确定了,多边形的其他点就是通过颜色的插值得到,这就相当于添加了渐变色。
下面是summer
下面是autumn
下面是winter
相关文章推荐
- matlab函数
- matlab图形着色
- MATLAB 常用命令
- Ubuntu下Matlab 2014 快捷键修改
- matlab练习程序(寻找凸包,Graham扫描法)
- matlab代码注释技巧
- matlab:读取mp4文件,并把逐帧保存成图片文件,文件名的编号随帧数变化
- MATLAB 基本小函数用法
- Matlab环境下使用Libsvm
- matlab 复制图片到另一个文件夹 并且重命名
- 灰度共生矩阵GLCM及其matlab实现
- matlab:clear,close,clc
- Matlab函数bwmorph简介
- Matlab 实现对码功能
- 每天一点matlab——图像与图形的区别
- matlab图像处理为什么要归一化和如…
- 图像增强(MATLAB)
- 图像增强剂matlab实现
- 常用的一些图像处理Matlab源代码
- matlab图像处理为什么要归一化和如…