热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab好看的颜色代码,科学网—什么是好的颜色表(colormap)?雷朝阳的博文...

一、颜色表简介通常我们在绘制彩图是要选择颜色表,例如matlab中用imagesc函数绘制彩图时默认的颜色表为jet(蓝色红色)。不同颜色用来代表高程、振

一、颜色表简介

通常我们在绘制彩图是要选择颜色表,例如matlab中用imagesc函数绘制彩图时默认的颜色表为jet(蓝色......红色)。不同颜色用来代表高程、振幅等信息,可以帮助我们更直观的分析数据特征。

那么如何选择好的颜色表呢?Niccoli在文章《How to evaluate and compare color maps》(The Leading Edge,2014)中展示了通常采用的彩虹颜色表(与jet颜色表类似)是差的,容易引入假象。

二、颜色表评价

任何一种颜色都可以由RGB(红绿蓝)按比例混合构成,例如在matlab命令窗中输入"c=colormap(jet)"会得到一个64*3的数组,64表示的是jet颜色表由64个颜色组成,3表示的就是RGB的比例。

颜色的特征通常由“色彩-饱和度-亮度”表示,Niccoli指出亮度决定了我们对图像色彩的感知,因此将亮度特征作为评价颜色表的指标。任何一种颜色(RGB按比例混合组成)可以通过公式得到该颜色的亮度:

intensity=0.2989*red+0.587*green+0.114*blue

三、编程分析

matlab程序见附件。首先我们评价一下matlab中默认的jet颜色表,图1是jet颜色表的强度曲线,可以看出其强度曲线不是逐渐增加的,而是先增加后降低,黄色(横坐标40附近)的强度最大。

a8577db77398dba47208f3ea27a15aa2.png

图1

接下来评价一下CubeHelix颜色表的强度曲线,CubeHelix颜色表是Green通过分析得到的,我们这里用'CubeHelix.m'函数来生成CubeHelix颜色表。图2是CubeHelix颜色表的强度曲线,可以看出CubeHelix颜色表的强度曲线是线性增加的。图三为jet与CubeHelix颜色表强度值的灰度值,也可以看出CubeHelix是优于jet颜色表的。

8fe703137d94624d16de8a742e360416.png

图2

d7754079ce854ce0d9c75ad33827802c.png

图3

四、参考文献

1、Green, D. A. A colour scheme for the display of astronomical intensity images[J], Bulletin of the  Astromical Society  of India, 2011.

2、Niccoli Matteo. How to evaluate and compare color maps[J]. The Leading Edge, 2014.

转载本文请联系原作者获取授权,同时请注明本文来自雷朝阳科学网博客。

链接地址:http://blog.sciencenet.cn/blog-3310841-1085504.html

上一篇:动校正(NMO)理论及其编程实现

下一篇:ricker子波分析



推荐阅读
  • java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
    一、根据题意,填写出空格中的内容Java平台包括三个技术方向,其中J2ME代表____________、J2SE代表___________、J2EE代表 ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 判断编码是否可立即解码的程序及电话号码一致性判断程序
    本文介绍了两个编程题目,一个是判断编码是否可立即解码的程序,另一个是判断电话号码一致性的程序。对于第一个题目,给出一组二进制编码,判断是否存在一个编码是另一个编码的前缀,如果不存在则称为可立即解码的编码。对于第二个题目,给出一些电话号码,判断是否存在一个号码是另一个号码的前缀,如果不存在则说明这些号码是一致的。两个题目的解法类似,都使用了树的数据结构来实现。 ... [详细]
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
author-avatar
sx-March23
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有