如何画一个图表CIELAB颜色?

50个视图(30天)
看到
看到 2019年3月22日
编辑: 为副总经理 2023年5月14日21:31
亲爱的Matlab社区,
我是Matlab。想从Matlab专家寻求帮助。
我想画一个圆形CIELAB颜色表(如下所示)和马克我的数据点。有可能在Matlab,如何?
lab-color-space (1) . png
谢谢你!
1评论
约瑟夫
约瑟夫 2023年5月9日
你好,
我也在寻找这个答案。有人有什么建议吗?

登录置评。

答案(3)

为副总经理
为副总经理 2023年5月14日在20:28
编辑:为副总经理 2023年5月14日21:31
我认为“色轮”是不合适的任务,为了使用它,例子歪曲的多个方面的说明。
图纸范围片
说明循环上
前言,我要关注的代表性颜色sRGB和sRGB域所在实验室。这是有争议的,说明这种约束增加了混乱,因为我们试图说明的是广阔的实验室,而不是sRGB子集。我证明这个事实,我们要通过这些颜色代表 在RGB ,我们可能会使用RGB空间sRGB。
投射到实验室时,sRGB域不是一个圆或一个圆柱体,如果你代表一个圆柱体,你代表什么?你是代表neutral-centered镌刻圆形区域内的颜色吗?如果是这样,你可以表示均匀性和颜色分布准确,但是你丢弃可表示的颜色和你不代表整个区段。另一方面,你浓度正常化作出一个圆形区域出现圆形?如果是这样,你可以画一个圆,覆盖整个区段,但是现在你严重歪曲的颜色分布,明确和坐标轴标签错了,因为被说明是什么 不色
回到手头的具体的例子。所以这两种方式的给定图代表浓度吗?答案是 既不 。既不规范化,也不是一个统一的铭刻。周围的像素边缘表面上的C = 100是在34 - 92的浓度范围。很难找到比这更不准确。
给定的图包括一个L规模,但没有参考标志或任何告诉我们什么是L这些颜色。这只是一个完全无用的统治者。更糟糕的是,说明颜色不在一个平面的常数L。他们跨越了从27到93不等。
H是什么呢?很难,搞得一团糟,对吧?在色相角大约像预期的那样,他们还不定地抵消(~ 30度之多),和发展 甚至不是单调
所以怎么搞砸了?在这个过程中有两个步骤。首先,想出了一个坏主意,迫使你歪曲你想传达的信息。其次,在执行的过程中坏主意,迷失在各种需要的妥协,让所有数据截断使事情变得更糟。我相信目的是与规范化浓度画的图,不过最终的计算范围,推动事情 天真的截断的后果 等颜色已经离开我们,他们不再是一个常数L或线性H面扫描。
让我们后退一步想想一会儿。使用第一个链接的例子,我们画的颜色L = 50架飞机。图像区段覆盖,B =(-110 110),所以中性轴的中心。无视的一个圆形的面具和一些极网格线和标签,这将是我们的“色轮”。
您可能会注意到一些奇怪的条带构件在图像中间,似乎周围地区的形象。这些都是当地的变化梯度,是由截断引起的。而在这个范围内的一切,B是有效的实验室中的颜色,它们并不都能上演的sRGB。如果我们阴影的区域范围,我们得到这个。
注意几件事。首先,它不是一个圆形区域,也不是其质心重合的中性轴。第二,带工件消失了;这些都是影响发生截断在色域边界开始。最后,这个地区的亮度的颜色看起来均匀。这几乎是很难分辨的中心是灰色的。比较图的颜色的均匀性问题。
无视它是否是个好主意,如果你想 正常化 色,你会怎么做呢?为了正常色,你需要知道的色域边界的色度L H。这不是一个简单的计算实验室,因为边界浓度甚至不是一个单值函数的L和h .努力减少必要的错误,边界计算和浓度正常化可以执行,但也有 已经工具 转换成chroma-normalized实验室内部工作。
深圳= 300;%大小的图像
%建立基地HuSLab形象
(x, y) = meshgrid (linspace(-110110年,深圳));
[H S] = cart2pol (x, y);
H = rad2deg (H);
L = 50 *的(深圳);
%屏蔽无效的像素
L (> 100) = 0;
%这是MIMT的一部分(见文件交换)
thisrgb = husl2rgb(猫(3 H, S、L),“实验室”);
%添加一个文本标签直接形象
lbl = textim (sprintf (' L = % d '圆(50)),“ibm-iso-16x9”);
thisrgb(10:大小(lbl 1) + 9, 10:大小(lbl 2) + 9日:)= repmat (lbl [1 1 3]);
%显示所有片
imshow (thisrgb)
imwrite (thisrgb“op1.png”)
注意几件事。这里的半径不是浓度。规范化的浓度——也就是。 饱和 。第二,因为我们已经扭曲了色度空间通过规范的函数H,显然它不再是统一的。
所以虽然浓度正常化有它的并发症,这是有可能的。最后,我们得到一个图不代表实验室或LCHab,但chroma-normalized变体(HuSLab / HSLab)。如果你发现这个答案难以效仿,那么你应该希望你的读者不能盲目直觉这图与实验室。
顺便说一句,这个例子还允许我们实现“最大内接圆区域”选项。“实验室”改为“labp”调用husl2rgb ()。我们可以期望它去饱和彩笔。注意关闭中性轴是色域边界在前面的图。
这些细节问题吗?这个问题留给你。如果它是印在一本书,不可能,最大精度是十分必要的。条带构件引起的截断甚至可能不会出现。事实上,L在原来的图不一致可能是有益的,为不均匀impoves色调作为他们进步的视觉清晰度测量周长。
说,如果我们减少假装每个颜色模型是一种有限圆柱体积,然后的目的是表明模型有区别吗?什么时候你告诉读者这特别微妙的教训被纯粹的发明?


社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!