保存出现在 jet 颜色图中的灰度图像

pra*_*abu 1 matlab image image-processing octave

我有从光谱数据(波段分类)处理的灰度卫星图像。如果我在 imshow 中使用 jet 颜色图,它将显示绝对颜色图图像。但是,如果我尝试在特定的地方写字,它会像蓝色图像一样保存。我在matlab中心看到了一个例子,但我没有得到。谁能帮我用彩色图像写我的图像。

Matlab 中心链接:http : //www.mathworks.in/matlabcentral/answers/25026- Saving-grayscale-image-as-it-appears-in-jet-colormap-of- imagesc

接受的答案链接是:http : //www.mathworks.com/matlabcentral/fileexchange/7943

我已经尝试了很多次,这将在图中显示颜色映射图像(imshow),他们没有在任何地方使用颜色映射。现在我想用颜色映射写我的图像。

示例代码:

I= imread('image path');
imshow(I,'colormap',jet);
imwrite(I,'path','jpg');  /not working
Run Code Online (Sandbox Code Playgroud)

或者

imwrite(I,jet,'path','jpg');  /not working
Run Code Online (Sandbox Code Playgroud)

请帮助解决这个问题。

hba*_*rts 5

当您使用imshow颜色图时,始终会根据图像中的值范围进行调整。imwrite但是,如果您使用singledouble数据类型,则假设您的图像具有 [0,1] 的值范围。在保存之前尝试将图像缩放到范围 [0,1]。

如果您在对 的调用中提供颜色图imwrite,MATLAB 会假定您使用的是索引图像。因此,您必须首先将图像转换为索引格式。以下代码段适用于我的测试图像I

% scale to [0,1]
I = I - min(I(:));
I = I ./ max(I(:));

% Create indexed image
[J,~] = gray2ind(I);

% Save image
imwrite(J,jet,'path','jpg');
Run Code Online (Sandbox Code Playgroud)