others - 将montage另存为图像 matlab

在matlab中,我有225幅图像和montage函数,我可以用montage展示,但是我不能将montage保存为完整的图像,请帮助我。


path = uigetdir;

D=dir(fullfile(path,'*.tif'));

imcell = cell(1,numel(D));
imcropped = cell(1,numel(D));

figure(1);
title('Drag square to crop picture, end with a double click',...
 'FontSize', 15 , 'HandleVisibility' , 'off' ) ;
axis equal
set( gca , 'NextPlot' , 'replacechildren') ;
imcell1 = imread(D(50).name);
[~, rect] = imcrop(imcell1);
close(figure(1));
% 
for i = 1:numel(D)
 imcell{i} = imread(D(i).name);
 imcropped{i} = imcrop(imcell{i}, rect);
end

h=montage(cat(4,imcropped{:}),'Size', [15 15] );

montage"H"的输出只是一个数字。

时间:

'h'实际上是你创建的montage创建的image对象的句柄,可以使用getframe捕获图(图形对象)的内容,并将它保存为图像。下面是一个非常简单的示例,代码


h=montage(cat(4,imcropped{:}),'Size', [15 15] );

MyMontage = getframe(gca) %// Get content of current axes. I did it with sample images.

输出是以下内容:


MyMontage = 

 cdata: [384x1024x3 uint8] % Yours will be different
 colormap: []

因此,你可以将实际数据保存到cdata中,并存储在新文件中


imwrite(MyMontage.cdata,'FancyName.tif','tif');

...