热门标签 | 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子波分析



推荐阅读
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文介绍了几种常用的图像相似度对比方法,包括直方图方法、图像模板匹配、PSNR峰值信噪比、SSIM结构相似性和感知哈希算法。每种方法都有其优缺点,适用于不同的应用场景。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 本文探讨了如何利用 jQuery 的 JSONP 技术实现跨域调用外部 Web 服务。通过详细解析 JSONP 的工作原理及其在 jQuery 中的应用,本文提供了实用的代码示例和最佳实践,帮助开发者解决跨域请求中的常见问题。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
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社区 版权所有