我正在尝试使用以下几行绘制一些气象数据并将其保存到 png 图像文件中。
imag = data2image(flipud(vari'));
imag = gray2ind(imag);
imwrite(imag,colormap('jet'),'PSFC_RIO_im.png','png');
wheredata2image
是一个自定义函数,它重新缩放数据以供图像函数使用。
function image = data2image(data)
HIGH = max(data(:));
LOW = min(data(:));
image = (data - LOW)/(HIGH-LOW);
end
不幸的是,imwrite
抱怨以下错误:
error: ind2rgb: X must be an indexed image
error: called from:
error: /usr/local/share/octave/3.6.4/m/image/ind2rgb.m at line 44, column 5
error: /usr/local/share/octave/3.6.4/m/image/imwrite.m at line 176, column 16
error: /home/tufts/Documents/Octave/geomat.m at line 53, column 1
其中第 53 行是imwrite
上面代码中的。这个错误对我来说完全没有意义,因为 imag 已使用该gray2ind
函数转换为索引图像。我还通过用 绘图来测试这一点imshow
,这很有效。
编辑 - 图像类:
octave:9> class(imag)
ans = double