我有一张RGB图像,我使用rgb2index将其转换为索引图像。结果图像存储在两个变量中(作为matlab要求)。但是我希望将它放在一个变量中以便进一步处理。这就是我尝试过的。结果是黑色的。
clc
clear all
close all
%%
I = imread ('Daniel1_SRGB.png');
[in_I,map] = rgb2ind(I,3,'nodither');
imshow (in_I,map)
imwrite (in_I,map,'new_image.PNG','png')
new_I = imread ('new_image.png');
imshow((new_image));
但如果做imshow((new_image,map))它给了我正确的答案。我希望它独立于变量映射。
答案 0 :(得分:3)
要将索引图像转换为RGB,请使用:
new_I = ind2rgb(in_I,map)
答案 1 :(得分:1)
不是最优雅的解决方案,但这有效。
resR = reshape(map(in_I(:)+1,1), size(in_I));
resG = reshape(map(in_I(:)+1,2), size(in_I));
resB = reshape(map(in_I(:)+1,3), size(in_I));
res = cat(3, resR, resG, resB);
imshow(res);
编辑:修改后的答案,包括光线改进。