2017-01-17 56 views
0

我有一个.png图像,使用Matlab的imagesc工具使用标准颜色映射从一些灰度数字创建。 由于某些原因,我无法恢复原始数据。有没有从图像中恢复原始数据的方法?我尝试了rgb2gray,它或多或少有效,但如果我将新图像重新插入到imagesc中,它会给我带来一点点不同的结果。而且,两个图像中强度最大的像素都不相同。Imagesc转换公式

因此,澄清一下:我很想知道,在使用标准颜色映射时,Matlab如何将rgb颜色映射应用于灰度值。

这是图片,我们都在谈论: http://imgur.com/qFsGrWw.png

谢谢!

+0

如果你的数据是'double',那么这是不可能的,因为一个PNG将丢弃你的64位浮点数据而偏向8位整型数据类型。另外,'rgb2gray'不会反向映射颜色映射,而只是将其转换为灰度。如果你告诉我们你实际想要完成的事情,也许我们可以提供更多帮助 – Suever

+0

我的数据是uint8。我试图用标准色图(我知道最亮像素的强度,因此我可以将所有东西都转换回来)“撤销”imagesc,否则我没有更多的原始数据。所以基本上我需要在问题中链接的图像的每个像素的亮度。 – FMu

+0

如果您想保留数据,请将其保存在'.mat'文件中,而不是尝试截取屏幕截图并将其保存为RGB png。 – Suever

回答

1

不,如果您使用标准颜色映射表或jet,则无法获得正确的数据。

通常,尝试对工程图进行反向工程是一件非常糟糕的事情,因为它们绝不会包含整个信息。这通常是真实的,但如果您使用的颜色映射不随数据相应更改,则更是如此。 jet中的蓝色数量比橙色或其他颜色的数量大得多。颜色变化与数据变化是非线性的,这会让你错过很多分辨率。你可能知道橙色对应的值,但蓝色将是一个非常广泛的可能值。

简而言之:

  1. Triying从数据(即地块)的表现获得的数据是一个可怕的想法

  2. jet是一个可怕的想法