我正在寻找在Matlab中使用强度图像图(保存为jpeg(RGB)文件)创建一个强度矩阵,该图是使用来自Matlab的喷射色图制作的。我本质上是试图从图中反向设计数值数据。原始图像与颜色条相关联(我没有足够的声誉来插入图像)。
http://i.imgur.com/BmryO6W.png
我最初认为这可以使用rgb2gray命令完成,但它会生成以下图像,并应用了与原始图像不匹配的jet colormap。
http://i.imgur.com/RlBei2z.png
据我所知,此处唯一可用的路径是尝试将每个像素的RGB值与colormap查找表中的值进行匹配。关于这是否是最快的方法的任何建议?
答案 0 :(得分:0)
除了比例之外,使用rgb2gray
的方法看起来几乎正常。由于色彩映射会自动缩放到绘图的内容,我认为您必须手动重新缩放(除非您可以自动检测colorbar
上的刻度标签)。您可以使用以下公式执行此操作:
% Some random data like yours
x = rand(1000) * 256;
% Scale data to fit your range
xRange = [min(x(:)) max(x(:))];
scaleRange = [-10 10];
y = (x - xRange(1)) * diff(scaleRange) / diff(xRange) + scaleRange(1);
您可以使用
检查操作的成功>> [min(y(:)) max(y(:))]
ans =
-10 10