【发布时间】:2016-02-24 08:34:45
【问题描述】:
阅读this 问题后,我想使用此代码将我的图片保存为特定尺寸。
I_c(:,:) = cropped_matrix(i,:,:);
set(I_c, 'PaperUnits', 'inches');
x_width = 7.25;
y_width = 9.125;
set(I_c, 'PaperPosition', [0 0 x_width y_width]);
imshow(I_c);
saveas(I_c,'fig1.pdf');
I_c 表示uint8 的二维矩阵(约 40x40)。
但是,我得到了错误:
使用设置无效句柄时出错
这让我相信我只能将此代码用于数字而不是包含矩阵的矩阵。我该怎么办?
我查看了print 的API,正如上述链接问题的第一个答案所建议的那样,但它也建议使用set 和'PaperUnits'。
注意:This 问题也关注这个问题,但提出了相同的解决方案。
关于克劳利的回答的注意事项
- 所以我只是尝试了您在回答中给出的代码。正在生成的
.jpg如下所示。我将如何通过代码摆脱所有额外的白色区域? - 当我只使用
image(ImData)时,如何将正在生成的图形的colourmap更改为灰度?
这是实际数字的显示方式:
这是我输入的代码:
im = image(I_c);
set(gcf,'units','inches','position',[1 2 5 5]);
set(gca,'ydir','normal','units','centimeters','position',[0 0 0.5 0.5].*get(gcf,'position')) ;
filename = strcat('slice',int2str(i),'_','bead',int2str(j),'.jpg');
saveas(im,filename);
【问题讨论】:
-
如果你有图像处理工具箱,那么你可以使用
imresize。否则,您必须使用interp2手动完成。set期望第一个变量是图形或轴的句柄,它不适用于矩阵。 -
我很难理解变量的含义。
I_dw似乎是你的形象,但你从不使用它。I_c可以是图形的句柄,但这与imshow;的使用不匹配。 -
不过,作为记录,在没有给出
I_c是什么的任何上下文的情况下发布明显由变量I_c引起的错误是没有意义的...... -
@Daniel 刚刚更改了代码。
-
也许使用
set(gcf,'units','centimeters','position',[0 0 width, height])和set(gca,'units','centimeters','position',get(gcf,'position'))应该可以创建具有给定大小且无边框的图形。
标签: image matlab matrix file-io