色图(color map)是MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图。   
    色图是m×3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。    
    色图代表的就是一个映射(彩色映射),它不是连续函数类型的映射,而是用一个有三列的矩阵来代表,这三列分别代表颜色的R、G、B分量。
 

1、数字图像处理中的应用:生成伪彩色图像

    索引图像(伪彩色图像)有两个分量,即整数矩阵X和彩色映射矩阵map。映射矩阵map是一个大小为m行3列,且范围在[0,1]之间的浮点值构成的double类二维数组。map的每一行都定义单色的红、绿、蓝三个分量。索引图像将亮度值(灰度)“直接映射”到彩色值。每个像素的颜色有对应的整数矩阵X的值作为指向map的一个指针决定。
下面是常用颜色的RGB值
这种映射,一般是一种多对一的映射,当colormap的行数m比较小时,图像上的多个灰度值就会映射到一个颜色。例如:假设灰度图X只有4个像素,它们的值分别为1,64,128,256。若指定彩色映射map=[0 0 0;0.9 0.9 0.9],则所有X中的值为1的元素会指向该图map的第一行(黑色),其他所有元素都会指向第二行(浅灰色)。下面是代码演示:
X = [1,65;128,256];
map = [0 0 0;0.9 0.9 0.9];
imtool(X,map);
参考自:《数字图像处理Matlab》,冈萨雷斯,P147 

在数字图像中,它可以利用它将灰度图映射为伪彩色图像,如下图:

A = imread('pout.tif') ; 
% 第一步 显示图像
imshow(A);colorbar
% 第二步
colormap jet  % 内置的colormap
% 第三步
colormap autumn  % 内置的colormap
% 第四步  % 返回到原图

colormap gray  % 内置的colormap

 
下面是Matlab内置的Colormap

应用2、更美观地展示你的三维图像

通过上面的展示,我们其实可以把图像上的“灰度值”看做普通三维图像的Z轴。利用colormap可以将Z轴高度/值映射为对应的颜色;
 
使用系统内置的colormap
syms x y;
ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40);
colormap(hot);
 
自定义colormap
syms x y
ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
colormap([0,1,0.5 ;1,0,0]) % 分成两部分,分别映射成红色和绿色
syms x y
ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
colormap([0,1,0.5;1,0,0;0,0,0])        
% 分成3部分,由图可以看出是按函数值的大小映射颜色
 
%来一个更漂亮的
surf(peaks);
mymap = [0 0 0;1 0 0;0 1 0;0 0 1;1 1 1];
colormap(mymap);
 
 
应用3、绘制动图
慢慢更新。。。
 
 
 
 

Matlab绘图基础——colormap在数字图像处理及三维图形展示上的应用(分层设色)的更多相关文章

  1. Matlab绘图基础——colormap的使用

    **使用系统内置的colormap** ``` syms x y ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40) colormap(hot) ``` 自定义colormap ...

  2. Matlab绘图基础——绘制向量图,二维三维(绘制参数曲线图)

    ------------------------------------------- %绘制向量场图 %例一 clear all;clc; [X,Y] = meshgrid(-2:.2:2,-3:. ...

  3. Matlab绘图基础——图形修饰处理(入门)

    引入--标题.色条.坐标轴.图例等 例一: set(groot,'defaultAxesLineStyleOrder','remove','defaultAxesColorOrder','remove ...

  4. Matlab绘图基础——其他三维图形(绘制填充的五角星)

    其他三维图形 %绘制魔方阵的三维条形图 subplot(2,2,1); bar3(magic(4));   %以三维杆图形式绘制曲线y=2sin(x) subplot(2,2,2); y=2*sin( ...

  5. Matlab绘图基础——绘制三维表面

    %绘制三维表面 ------------------------------------- %1.绘制线框图:mesh:每一条曲线称为mesh line %首先利用meshgrid函数产生平面区域内的 ...

  6. Matlab绘图基础——用print函数保存图片(Print figure or save to file)

    print(figure_handle,'formats','-rnumber','filename')  %将图形保存为png格式,分辨率为number的(默认为72),最好指定的分辨率大一点,否则 ...

  7. Matlab绘图基础——散点生成三角网(TIN)

    %例一:二维三角网TIN模型的生成 X=rand(10,2)*5; dt=DelaunayTri(X(:,1),X(:,2));       %生成三角网 triplot(dt);hold on;   ...

  8. Matlab绘图基础——绘制等高线图

    % 等高线矩阵的获取 C = contourc(peaks(20),3);              % 获取3个等级的等高线矩阵 % 等高线图形的绘制 contour(peaks(20),10);c ...

  9. Matlab绘图基础——利用axes(坐标系图形对象)绘制重叠图像 及 一图多轴(一幅图绘制多个坐标轴)

    描述 axes在当前窗口中创建一个包含默认属性坐标系 axes('PropertyName',propertyvalue,...)创建坐标系时,同时指定它的一些属性,没有指定的使用DefaultAxe ...

随机推荐

  1. Net 常用资源

    opensource: http://www.dotnetfoundation.org/projects https://github.com/dotnet/corefx Enterprise Lib ...

  2. inode file 结构

    inode位图(inode Bitmap) 和块位图类似,本身占一个块,其中每个bit表示一个inode是否空闲可用. inode表(inode Table) 我们知道,一个文件除了数据需要存储之外, ...

  3. 牛B三人组-快速排序-堆排序-归并排序

    快速排序 随便取个数,作为标志值,这里就默认为索引位置为0的值 记录左索引和右索引,从右往左找比标志值小的,小值和左索引值交换,右索引变化,然后从左往右找比标志值大的,大值和右索引值交换,左索引变化 ...

  4. lua获取table的长度

    lua在获取table的size时,不能一味的使用类似于java里面的length函数 table的存储是类似hashTable的kv形式. -- table.getn(tableName) 得到一个 ...

  5. Flask使用SQLAlchemy连接mysql

    表操作 models.py from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column ...

  6. (2.1)备份与还原--sql server文件的概念及操作

    概述:sql server是以文件形式存储数据与日志 1.数据文件 sql server数据文件分为2类 (1)主数据库文件 主数据库文件包含数据库的启动信息.系统对象,并指向数据库的其他文件(从数据 ...

  7. mysql 约束条件 auto_increment 自动增长

    约束字段为自动增长,被约束的字段必须同时被key约束 id自动增长,每插入一条记录,自动增长 创建一张表 t20 id 字段设置为 不为空 唯一 自动增长 mysql)); Query OK, row ...

  8. 前端 javascript 定时器

    setInterval("执行的代码",间隔时间)毫秒单位 每5秒一次会提示出弹框 <!DOCTYPE html> <html lang="en&quo ...

  9. 模块讲解----os

    os:跟操作系统相关的信息 os模块的增删改查 一.cd进入: windowd: os.chdir("D:/软件/pychar/data/s13") print('获取当前位置:' ...

  10. FAQs on Android

    @1: Environment Setup Ubuntu 14.04  32bits 1. Call Requires API level 11 (current min is 8) Android. ...