我有一些geotif文件,我正在尝试用它们创建一个马赛克。我试图将图像放在一起排在第一行,然后尝试连接列并拥有最终的马赛克。我想让输出文件包含循环的保存号(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
您的助手非常感谢。
答案 0 :(得分:1)
我不熟悉matlab语法k. format(fname)
如果你想在Matlab中进行字符串格式化,请阅读this first。
您的问题的解决方案可能是
outimage = fullfile( path2, sprintf('outimage_%03d_%s', k, fname ) );
修改强>
在comment by OP之后,获取文件格式(tif):
[~, ~, ext] = fileparts(fname);
outimage = fullfile( path2, sprintf('outimage%d.%s',ext) );