1

我有一些 geotif 文件,我正在尝试用它们创建马赛克。我曾尝试将图像先放在一行中,然后尝试加入 in 列并进行最终马赛克。我希望输出文件带有循环的保存编号(outimage1,outimage2,..)。我想知道我应该如何引入带有循环号序列的输出文件。

如果有人帮助我在以下代码中找到我的错误,我会很高兴。

 close all;
 clear all;
 clc;

 path = 'E:\MATLAB\...\tifs\';
 path2 = 'E:\MATLAB\...\tifs\out\';

 matfiles = dir(fullfile('E:', 'MATLAB',...,'tifs','*.tif'));

 files = {matfiles.name};
 lf=length(files);

 image_row = [];


 for L=1:11
     for k=1:14:lf
          fname = matfiles(k).name;
          fullname = horzcat (path,fname);
          infile = imread (fullname);
          image_row= [image_row,infile];
          [~, ~, ext] = fileparts(fname);
          outimage = fullfile( path2, sprintf('outimage%d%s', L, ext) );
          imwrite(image_row,outimage);
     end

 end

您的助手受到高度赞赏。

4

1 回答 1

1

我不熟悉 matlab 语法k. format(fname)
如果您想在 Matlab 中进行字符串格式化 - 请先阅读内容。

您的问题的解决方案可能是

 outimage = fullfile( path2, sprintf('outimage_%03d_%s', k, fname ) );

编辑:
根据OP的评论,获取文件格式(tif):

 [~, ~, ext] = fileparts(fname);
 outimage = fullfile( path2, sprintf('outimage%d.%s',ext) );
于 2013-06-17T12:41:10.257 回答