2017-01-17 86 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是一個可怕的想法