对matlab中colormap的解释及fill、imshow的用法说明

原创 2015年11月18日 21:43:49

这篇文章的主要目的在于对colormap的解释,会涉及到fill和imshow的使用,因此首先解释fill和imshow的用法。

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中的colormap详解

matlab中,每个figure都有(而且仅有)一个colormap,翻译过来就是色图。    COLORMAP(MAP) 用MAP矩阵映射当前图形的色图。    COLORMAP('defaul...
  • SteelBasalt
  • SteelBasalt
  • 2015年11月12日 15:34
  • 8269

matlab颜色映射colormap() pcolor()

一、简单颜色 Red(红)            Green(绿) Blue(蓝) 颜色   0 0 0 黑   1 1 1 白...
  • qq_20823641
  • qq_20823641
  • 2016年06月19日 11:21
  • 10077

matlab中的求导函数diff

2018-01-19今天发现我的标题写错了,diff不知怎么写成了fill,醉醉醉-----------------------------------------------------------...
  • m0_38037810
  • m0_38037810
  • 2018年01月14日 20:19
  • 9

C++中fill()、fill_n()与memset()函数的区别

C++中fill()、fill_n()与memset()函数的区别fill()函数说明  在头文件里。  按照数组的始末位置以一个数组元素为单位赋值,将区间内的每一个元素都赋值为val。用法  fil...
  • xs18952904
  • xs18952904
  • 2017年07月16日 02:49
  • 231

matlab中自定义colormap的保存与调用

由于matla自带的colormap的样式可能不是自己想要的类型,因此有时候需要自定义一个自己的colormap,关于colormap的介绍可以参考博文matlab 的 colormap 函数,关于c...
  • majinlei121
  • majinlei121
  • 2015年06月26日 09:03
  • 6203

让颜色对应数值,matlab colormap

问 如何让自己画出的数值对应不同的颜色呢?换话句话说,如何用不同的颜色表示不同的数值呢? 就是让数值的范围对应颜色的范围。 matlab colormap 标准色hsv 色彩饱和值(以...
  • ziqian0512
  • ziqian0512
  • 2017年04月26日 12:39
  • 2360

C++ fill()和fill_n()函数用法

fill 和fill_n函数是C++ Primer第十二章泛型算法部分内容,并把它们称为生成和变异算法,也就是说这两个函数只能对输入范围内已存在的元素进行操作。如果试图对空容器进行fill_n操作,会...
  • yujin753
  • yujin753
  • 2014年11月25日 19:01
  • 8041

MATLAB函数记录

1、fullfill(‘dir1’,’dir2’,…,’filename’); 用途: 利用文件各部分信息创建合成完整文件名 例子:若文件‘100.hea’的路径为:’D:\matlab\xind...
  • Cheese_pop
  • Cheese_pop
  • 2016年10月17日 16:22
  • 642

matlab 的 colormap 函数

1 colormap简介 matlab中,每个figure都有(而且仅有)一个colormap,翻译过来就是色图。 colormap(map) 用map矩阵映射当前图形的色图。 colorma...
  • google0802
  • google0802
  • 2013年11月15日 17:28
  • 10397

Python 使用matplotlib使用并自定义colormap

0.前言添加colormap的对象是灰度图,可以变成热量图,从而更加明显的发现一些规律,适用于一些雷达图像等from PIL import Image # 将彩色图片转换成黑白图片 im=Image....
  • u010105243
  • u010105243
  • 2017年08月07日 19:55
  • 2943
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对matlab中colormap的解释及fill、imshow的用法说明
举报原因:
原因补充:

(最多只允许输入30个字)