介绍
在图像显示中,通常需要将单通道图像转化为伪彩色图进行更多的细节显示(matlab中使用colormap()),
但伪彩色图一经保存就变为三通道数据,无法使用原数据,这里给出通过三通道数据和colormap转换原数据的方法,仅供大家参考。
Matlab代码
%% Rebuild original data from Pseudo-color image
img = im2double(imread('E:\Pictures\laser.jpg'));
Colormap = jet(60); % 该参数影响原数据的位数
ReBuildIMG = zeros(size(img,1:2));
for i = 1:size(img ,1)
for j =1:size(img ,2)
PixelColor = squeeze(img(i,j,:))';
Distance = sum(sqrt((PixelColor - Colormap).^2)');
FindIND = find(Distance == min(Distance));
ReBuildIMG(i,j) = FindIND(1);
end
end
%%
% figure
imagesc(ReBuildIMG);
colormap gray