0

我有一个关于如何做某事的问题。我有一个包含不同图像的文件夹(每个图像有 3 个波段)。例如。

Img_244_234_1_1.tif
Img_244_234_1_2.tif

Img_250_234_1_1.tif
Img_250_234_1_2.tif

我需要做的是按名称拼接图像(例如,所有数字 244、250...)。现在,我正在以这种方式手动进行:

image1 = imread('C:\Prueba\Img_244_234_1_1.tif','tif');
image2 = imread('C:\Prueba\Img_244_234_1_2.tif','tif');
image3 = imread('C:\Prueba\Img_250_234_1_1.tif','tif');
image4 = imread('C:\Prueba\Img_250_234_1_2.tif','tif');

image_result1 = cat(2,image1,image2);
image_result1 = cat(2,image1,image2);

如何使用始终位于相同输出名称位置的日期编号(244,250 ...)自动化?

非常感谢任何建议。

4

2 回答 2

0

您可以使用循环(如for x=[244,255])和字符串连接:['C:\Prueba\Img_' x '_234_1_1.tif']如果 x 为 244,则计算结果为 `'C:\Prueba\Img_244_234_1_1.tif'。

于 2014-10-20T08:46:34.863 回答
0

如果您的文件名组织良好,那么以下代码应该可以工作。

cd('C:\Prueba\');
files = dir('*.tif');
for i=1:2:numel(files)
    image1 = imread(files(i).name);
    image2 = imread(files(i+1).name);
    image_result = cat(2,image1,image2);
end
于 2014-10-20T12:55:11.380 回答