蒙太奇在Matlab中 - 保存并显示

时间:2014-10-17 14:35:30

标签: matlab image-processing

当我运行此代码时:

fileFolder = fullfile(matlabroot,'toolbox','images','imdemos');
dirOutput = dir(fullfile(fileFolder,'AT3_1m4_*.tif'));
fileNames = {dirOutput.name}'

zImg=montage(fileNames, 'Size', [2 5]);
imwrite(zImg,'C:\Users\xc\Desktop\ATMtemp.png') 

我在一个新图中得到蒙太奇图像,但是我可以取消它并将其存储在内存中吗? 而且,我无法保存蒙太奇。任何原因以及如何在不使用getframe的情况下执行此操作,因为我不想显示生成的数字?

2 个答案:

答案 0 :(得分:2)

MATLAB图像处理工具箱中的montage功能仅用于显示目的,因此仅显示图形。您可以从此图中获取图像数据的唯一方法是,如果您将函数的句柄指定为输出(在您的情况下为zImg),则使用{{1} } / getframe你建议的成语。但是,这会给你一个白色边框,你也注意到了。

如果你想创建一个与cdata做同样事情的图像,你可以构建montage自己正在做的事情。 montage的替代方法是读取单元格数组中的所有图像,然后手动将它们排列在蒙太奇中。我将假设您正在以行主格式堆叠图像,因此行一次填充一行。这意味着图像1到5将是第一行,而图像6到10将是第二行。

将其纳入2D矩阵的技巧是您需要使用reshapemontage将以列主格式填充元素,因此您需要构建结果的转置,然后在完成后转置该元素。之后,使用cell2mat消除单元格数组并制作最终的2D矩阵。

因此,做这样的事情:

reshape

答案 1 :(得分:0)

我并非100%确定我理解您所要求的内容,但如果您想绘制一堆数字并将其保存到文件中而不会让数字窗口闪烁,则可以使用{{ 3}}