首先让我使用Jet colormap创建一个索引图像:
img = repmat(uint8(0:255), 100, 1);
cmap = jet(256);
imshow(img, 'Colormap',cmap)
Run Code Online (Sandbox Code Playgroud)

使用IND2GRAY进行直接转换会产生以下结果:
J = ind2gray(img,cmap);
imshow(J)
Run Code Online (Sandbox Code Playgroud)

如您所述,最小值/最大值收敛到相同的值.根据我的理解,您希望将喷射色图映射为从深色到浅色的灰色线性.为此,我们可以使用 RGB2HSV函数获得的色调值重新排序.将以下内容与原始色彩映射进行比较:
[~,idx] = sortrows(rgb2hsv(cmap), -1); %# sort by Hue
C = gray(256);
C = C(idx,:);
imshow(img, 'Colormap',C)
Run Code Online (Sandbox Code Playgroud)
