在阅读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
的2D矩阵(约40x40)。
然而,我收到错误:
使用set Invalid handle
时出错
这让我相信我只能将这个代码用于数字而不是包含矩阵的矩阵。我该怎么做?
我已查看print
set
作为上述关联问题的第一个答案的建议,但它也建议使用'PaperUnits'
和.jpg
。< / p>
注意:API问题也会考虑此问题,但建议采用相同的解决方案。
有关克劳利答案的说明
colourmap
如下所示。如何通过代码摆脱所有额外的白色区域? image(ImData)
时,如何将正在生成的数字的 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);
更改为灰度? 以下是实际数字的显示方式:
以下是我输入的代码:
XmlDocument doc = new XmlDocument()
doc.LoadXml(results); // probably some try-catch here
var city = doc.SelectSingleNode("//CITY").InnerXml; //Handle null as well
答案 0 :(得分:1)
假设我们的矩阵I_c
包含值且x
和y
坐标,因此值I_c(ii,jj)
对应于x(ii)
和y(jj)
坐标。
然后:
ImMin=min(min(I_c)); % Find the minimum value in I_c
ImData=I_c-ImMin; % Ensure non-zero values
ImMax=max(max(ImData)); % Find maximum value in ImData
ImData=ImData./ImMax; % Ensure ImData do NOT exceed 1
image(x,y,ImData*[1 1 1]) % plot the image in greyscale
set(gcf,'units','inches','position',[1 2 5 5]) % set active figure properties
set(gca,'ydir','normal','units','inches','position',[0 0 1 1].*get(gcf,'position')) % set active axes properties
export_fig(gcf,'figure-I_c','-png','-nocrop')
'ydir','normal'
参数更改默认(1,1)点位于左下角的左上角“正常”位置。
[0 0 1 1].*get(gcf,'position)
将读取活动数字位置(此处为[1 2 5 5]),并且在逐个元素乘法后,[0 0 5 5]
将传递给position
,这会导致轴适合图像。
export_fig
函数将创建figure-I_c.png
图像,如Matlab图所示,如果省略-nocrop
,则会裁掉边缘中可能的空白区域。此功能可从MathWorks' File Exchange获得。