如何显示/操作索引图像Octave

时间:2017-02-16 09:06:35

标签: octave

情况:尝试输出并操作索引图像。

问题:使用ind2rgb(image, colormap(x))时,我们收到错误消息,指出indexed image contains colors outside of colormap,其中x是色彩映射选项。

问题:如何解决这个问题?

其他信息:我使用imshow(image, colormap(x)),其中我使用Octave上可用的每个色彩图代替x

1 个答案:

答案 0 :(得分:1)

我相信这是因为你有比colormap中的颜色更多的索引。只需制作更大的色彩图。您可以使用sysntax colormap(x(size_of_cmap))

执行此操作
ind2rgb(image, colormap(viridis(max(image(:))))

或者,创建色图并对其进行插值。注意:由于HSV循环行为,这可能会在颜色中产生伪影。

m=max(image(:));
cm=colormap(x);

hsv=rgb2hsv(cm);
cm=interp1(linspace(0,1,size(cm,1)),hsv,linspace(0,1,m));
cm=hsv2rgb(cm);

ind2rgb(image,cm);

我建议尽可能使用第一种解决方案。