MATLAB在图像处理中的应用

图像处理概念、算法和MATLAB

一个新的MATLAB颜色图——第3部分——一些反应

今天,我在讨论MATLAB中新的默认颜色映射时犹豫了一段时间,不知下一步该怎么办。我最终决定花一点时间研究目前为止的反应。这些反应从“太好了,你花了这么长时间干什么?”到“我讨厌它;把喷气机还给我!”在Twitter上,一位科学家宣称“一个时代的结束!”另一个简单地说“恶心”。(顺便说一句,Jet还在MATLAB中。)

今天,我想深入到一些这些反应的一点点。一路上,我会表现出一定的实验与测试模式来解释一些我对射流的意见。

提醒你,,上次我总结了15年左右的大约彩虹的colormaps批评:

  1. 彩虹色彩映射迷惑观众,因为在光谱颜色没有天然感性的排序。
  2. 彩虹颜色贴图模糊了数据中的小细节。
  3. 彩虹的提示是不是真的有数据功能的colormaps误导观众。这些“虚拟功能”往往采取虚假边界的形式。该效果可以错误地段相关的数据。
  4. 彩虹彩色地图在灰度设备上显示或打印时会丢失有关高数据值和低数据值的关键信息。
  5. 对于一些色障观众来说,彩虹彩色地图可能很难解释。

我见过一个声称是彩虹包含基于关联蓝色的冷和热红了普遍理解的顺序。毫无疑问,这种顺序是有道理的,有些人(虽然蓝色火焰热比红色的火焰?)。我与“普遍理解”部分狡辩,虽然。占主导地位的证据是,个人不普遍责令光谱色调以同样的方式,除非它们指的光谱顺序记忆,如“罗伊G.起搏。”这是行之有效的,但是,个人可以很容易地和一致级色彩的相对亮度。

另一位评论员说,彩虹彩色地图的对比度比帕鲁拉高。是的,这是真的。彩虹在数据范围的下三分之一从暗到亮,在数据范围的上三分之一从亮到暗。因此,在数据范围的某些部分,它的视觉对比度高于with parula使用整个数据范围从暗到亮。然而,为这种对比度的增加付出的代价是,在彩色地图的不同部分,暗和亮的相反作用所造成的视觉错觉和混乱。

利玛窦尼科利给出了一个基于彩虹的视错觉下很好的例子。下面分右侧图像的东西,给人以在骨结构的凹陷强劲,但假象中的箭头。

图片来源:Matteo Niccoli,“彩虹死了?彩虹万岁!”版权所有2014 MYCARTA。经许可使用。

上一次我展示了另一个视觉混乱的例子,用两种不同的正弦模式进行可视化:

这些可视化给人的印象是,两个正弦模式具有相反的相位,但实际上它们具有完全相同的相位。

另一位评论员说,如果足够熟悉,彩虹彩色地图所特有的明亮“条纹”对于某些类型的数据可能是一种优势。在某些特定情况下,这可能是正确的,但我不认为这在一般情况下是正确的。让我举一个例子,使用一个测试模式,说明青色和黄色条纹在解释应该容易识别的数据时会造成多大的困难。

URL ='https://blogs.mathworks.com/images/steve/2014/eia-2000-cropped.png';I=imread(url);imshow(I)colormap(jet)

让我来标记可视化的某些部分,然后问一些关于它的quetions。

案文(35,90,“A”,“字体大小”,25,“水平对齐”,“中心”,...“背景色”,“白色”)案文(125,90,“A”,“字体大小”,25,“水平对齐”,“中心”,...“背景色”,“白色”)文本(215,90,“A”,“字体大小”,25,“水平对齐”,“中心”,...“背景色”,“白色”)文本(190320,“B”,“字体大小”,25,“水平对齐”,“中心”)行([77 160],[225 225],'颜色',“白色”,“线宽”,5)文本(65225,“C”,“字体大小”,25,“水平对齐”,“对”,...“背景色”,“白色”)

每隔一段时间,深蓝色垂直条就会有一个明亮的轮廓(请参见标记为“a”的点)。这些明亮轮廓的数据意义是什么?尤其是与没有明亮轮廓的深蓝色竖条相比?

“A”标记之间的垂直条没有明亮的轮廓。这些条在深蓝色和深红色之间交替,这是一种低对比度的组合,有点难以清晰聚焦(一种称为色立体视)。

在“B”上方,我看到非常薄的垂直暗条。当这些条如此薄时,很难区分深红色和深蓝色,这是不幸的,因为这些颜色代表数据范围的两端。条之间的明亮轮廓被蓝色条纹的对角线图案打破。

边境地区的数字被奇怪地分割开来,难以解读。

让我们研究一下为什么一些垂直条列出,有些不是通过查看数据的横截面沿标有“C”的白色路径。

c=非曲线图(I,[77 160],[225 225]);曲线图(c,'*-')

我会塞给两行显示对应的亮青色和亮黄色的喷气颜色表的数据值。

持有在…上图([1 84],[1 1] * 0.375 * 255,“c”,“线宽”,5)图([1 84],[1 1] * 0.625 * 255,'是',“线宽”5)保持离开

现在很明显,为什么一些竖线被勾勒出来,而其他的则没有。在从低到高和从高到低的每个转换中,中间有一个数据值。当一个过渡数据值恰好接近映射为青色或黄色的数据值时,垂直条显示为明亮的轮廓。否则,就没有大纲。虽然这种效果在视觉上是显著的,并且使数据的某些区域看起来与其他区域有很大的不同,但是视觉上的差异并没有实际的数据意义。

好了,现在让我们将介绍使用parula颜色表这个数据。

imshow(I)颜色表(parula)

这种可视化是十分容易理解。中间的竖线都是一样的。该数字是易于阅读。低数据值和高数据值之间的视觉差异具有高的对比度,且容易对眼睛。和点以上的数据标记为“B”被看作是具有一个完全不同的形式比它似乎与喷射的方式。条纹具有较低的空间频率和被看作是在方向稍微散开,而不是出现垂直。

关于这个例子,一个合理的抱怨是,它完全是人为的,数据与人们可能用jet或parula看到的数据完全不同。不过,我想建议大家这样思考:如果jet可以获取熟悉的、易于解释的数据,并使其几乎无法识别,jet可以对您自己的数据做些什么?

最后,我要提一个博客的读者评论说,使用喷气使得它容易在一个数据集,其值是以零为中心相互区分正值和负值。是的,射流可以比parula为好。喷射是明亮的并在中间相对不饱和的,并且它是黑暗和在两端饱和。这些通常是由专门为突出的中心,具体的值和区分的值高于和低于所设计的colormaps共享特性。这些被称为发散的在以后的文章中,我将展示在哪里可以找到一些好的发散颜色贴图,以及如何在MATLAB中使用它们。




与MATLAB®R2014b一起发布

|
  • 打印
  • 发送电子邮件

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。