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

Octave 如何显示/操作索引图像倍频程,octave,Octave,情况:尝试输出并操作索引图像 问题:当使用ind2rgb(image,colormap(x))时,我们收到一个错误消息,称索引图像包含colormap之外的颜色,其中x是colormap选项 问题:如何解决这个问题 附加信息:我使用了imshow(image,colormap(x)),在这里我使用了八度音阶上可用的每一个colormap来代替x,我相信这是因为在colormap中索引比颜色多。只需制作一张更大的彩色地图。您可以使用sysntaxcolormap(x(size\u of\u cma

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

问题:当使用
ind2rgb(image,colormap(x))
时,我们收到一个错误消息,称
索引图像包含colormap
之外的颜色,其中
x
是colormap选项

问题:如何解决这个问题


附加信息:我使用了
imshow(image,colormap(x))
,在这里我使用了八度音阶上可用的每一个colormap来代替
x
,我相信这是因为在colormap中索引比颜色多。只需制作一张更大的彩色地图。您可以使用sysntax
colormap(x(size\u of\u cmap))

或者,创建颜色贴图并对其进行插值。警告:由于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);
如果可能的话,我建议使用第一种解决方案

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);