我编写了一个程序来处理和打印81x81 2D曲面图,需要将其用作输入。保存Matlab绘制的图包括侧轴和侧边的白边。 如何裁剪此图像以将(81像素)x(81像素)输出作为图像输出?
答案 0 :(得分:2)
尝试在图形代码后面放置它,它将移除图形周围的边距。
set(gca,'units','pixels') % set the axes units to pixels
xx = get(gca,'position'); % get the position of the axes;
set(gcf,'units','pixels') % set the figure units to pixels
yy = get(gcf,'position'); % get the figure position;
set(gcf,'position',[yy(1) yy(2) xx(3) xx(4)]) % set the position of the figure to the length and width of the axes
set(gca,'units','normalized','position',[0 0 1 1]) % set the axes units to pixels
答案 1 :(得分:0)
您可以避免使用冲浪图并将阵列保存为图像。所以,你有81x81阵列。我将以此为例:
a = magic(81);
现在您需要对图像进行标准化,以使值为0到255:
a = (a - min(min(a)))/(max(max(a))-min(min(a)))*255;
最后,您使用imwrite
将数组保存为图像。
imwrite(a,jet(256),'SO_4.png')
第一个参数是你的81x81阵列。第二个参数是colormap。您可以指定所需的任何色彩映射,但我喜欢热图jet(256)
。您可以跳过此参数,在这种情况下,图像将是灰度。从here,您可以找到可用的彩色地图以及它们的外观。最后一个参数是图像名称。结果如下所示:
希望有所帮助,祝你好运。