Предполагается, что имена ваших файлов изображений имеют формат:
' image_1.npy ', ' image_2.npy ', ... ' image_10.npy ', ' image_11.npy ...
Вариант 1 - использование ячеек и числовых массивов: Вы можете сгенерировать имена файлов в массиве ячеек и прочитать их в цикле, используя ячейки и числовые массивы для вычисления данных для каждого изображения:
% Number of image files
mumImages = 112;
% Generate image file names with desired format
imageNames = compose('image_%d.npy', 1:mumImages);
% Initialize cell arrays and numeric arrays (recommended, not required)
image_ = cell(size(imageNames));
image = cell(size(imageNames));
imageMAX = cell(size(imageNames));
IMAGE = cell(size(imageNames));
spot = zeros(size(imageNames));
% Populate the cell arrays and numeric arrays
for i = 1:mumImages
image_{i} = readNPY(imageNames{i});
image{i} = double(image_{i});
imageMAX{i} = max(max(image{i}));
% normalizes to the maximum
reference = exp(-1);
IMAGE{i} = fix(image{i}./imageMAX{i}/reference);
% calculate the spot size
spot(i) = 2*sqrt(size(nonzeros(IMAGE{i}),1)/pi)/1000;
end
% plot the spot size
plot(1:mumImages, spot)
Вариант 2 - использование массива stuct: Вы можете сделать то же, что и выше, с массивом stuct
% Number of image files
mumImages = 112;
% Genrate image file names with desired format
imageNames = compose('image_%d.npy', 1:mumImages);
% Initialize a struct with desired fields (recommended, not required)
C = repmat(struct('image_',[], 'image', [], 'imageMAX', [], 'IMAGE', [], 'spot', []), mumImages, 1 );
% Populate the struct array fields
for i = 1:mumImages
C(i).image_ = readNPY(imageNames{i});
C(i).image = double(C(i).image_);
C(i).imageMAX = max(max(C(i).image));
% normalizes to the maximum
reference = exp(-1);
C(i).IMAGE = fix(C(i).image./C(i).imageMAX/reference);
% calculate the spot size
C(i).spot = 2*sqrt(size(nonzeros(C(i).IMAGE),1)/pi)/1000;
end
% plot the spot size
plot(1:mumImages, [C.spot])