基于实验室的统一颜色尺度
DSP提示与技巧
我最喜欢的专业出版物之一是IEEE信号处理杂志.它有一个常规功能叫做“DSP提示和技巧”。在2006年1月的杂志上,James McNames写了一篇技巧和技巧的文章,叫做“同时发表彩色和灰度出版物的有效颜色比例”。波特兰州立大学的麦克纳斯教授写道,虽然“越来越多的电子出版物不需要额外费用就可以使用彩色……当转换为灰度时,大多数颜色尺度被失真。[…本文提出了一种彩色尺度,它在印刷形式中显示为单调的灰度尺度,并显著提高了彩色图像的分辨率。”
McNames给出了四个设计原则来选择有效的颜色尺度(或颜色表,用MATLAB术语):
- “[色阶]应涵盖尽可能多的可用颜色范围,受制于亮度单调增加的限制(对于灰度出版物)。
- “在整个尺度上,相邻的颜色应该尽可能清晰。”
- “两种颜色之间的感知差异应大致与它们在色阶上的位置差异成正比。”
- “颜色刻度应该是直观的。”
这篇文章接着展示了一些数学和一些创建这种色标的MATLAB代码。McNames教授在他的文章中提供了这个想法的完整MATLAB实现(ColorSpiral.m)网站.
通过L* A *b*颜色空间的路径
McNames文章描述了一种通过RGB空间构建路径的方法,该路径至少具有大致所需的属性。我认为,通过构建通过不同颜色空间L*a*b*的路径来形成色阶在概念上可能更简单。该颜色空间将亮度L*与两个色差分量a*分离*和b*。
如果你将a*和b*转换为极坐标,角度对应于色度,半径对应于色度,或色度的鲜明度。
让我们制作一个色标,它是L*中的一个均匀渐变。在a*-b*平面中,跟踪半径为50的半圆形路径,角度在0和pi/2之间变化。
半径=50;θ=林空间(0,π/2,256)。”;a=半径*cos(θ);b=半径*sin(θ);L=linspace(0100256)。”;实验室=[L,a,b];
现在,将L*a*b*值转换为sRGB,以便我们可以将其用作MATLAB颜色映射制作模板和苹果表格.
map = applycform(Lab, makecform())“lab2srgb”));
氡实例
让我们使用此颜色贴图查看Radon变换图像。
I=零(100100);I(25:75,25:75)=1;θ=0:180;[R,xp]=氡(I,θ);imshow(R,[],],“InitialMagnification”,“健康”)彩色地图(地图)
彩色尺度函数在MATLAB中心
功能色标在MATLAB Central上可以轻松地创建像这样的颜色尺度。您可以为半径和起始角度选择不同的值,并指定通过a*-b*空间的顺时针或逆时针路径。
colormap (color_scale)
色标图形用户界面
同样的MATLAB中央提交包含颜色缩放工具函数,这是一个GUI,可以使用滑块控制颜色比例参数。它还显示了颜色比例和近似的灰度当量。以下是屏幕截图:
试试看。
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。