Image 从强度打印输出中提取数值数据

Image 从强度打印输出中提取数值数据,image,matlab,Image,Matlab,我希望在Matlab中创建一个强度矩阵,该矩阵来自一个强度图像绘图(另存为jpeg(RGB)文件),该绘图使用的是来自Matlab的jet colormap。我基本上是在尝试对绘图中的数字数据进行反向工程。原始图像和颜色栏是链接的(我没有足够的声誉插入图像) 我最初认为这可以通过rgb2gray命令完成,但它会生成以下图像,并应用与原始图像不匹配的jet colormap 据我所知,这里唯一可用的方法是尝试将每个像素的RGB值与colormap查找表中的值进行匹配。关于这是否是最快的方法,有

我希望在Matlab中创建一个强度矩阵,该矩阵来自一个强度图像绘图(另存为jpeg(RGB)文件),该绘图使用的是来自Matlab的jet colormap。我基本上是在尝试对绘图中的数字数据进行反向工程。原始图像和颜色栏是链接的(我没有足够的声誉插入图像)

我最初认为这可以通过rgb2gray命令完成,但它会生成以下图像,并应用与原始图像不匹配的jet colormap


据我所知,这里唯一可用的方法是尝试将每个像素的RGB值与colormap查找表中的值进行匹配。关于这是否是最快的方法,有什么建议吗?

看起来您使用
rgb2gray
的方法,除了比例之外,几乎可以工作了。因为彩色地图会自动缩放到绘图内容,所以我认为您必须手动重新缩放它(除非您可以自动检测
彩色条上的刻度标签)。可以使用以下公式执行此操作:

% 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