Вы можете использовать код ниже, чтобы получить минимальный и максимальный фон.Вот что я сделал, взяв значения r, g, b каждого изображения по отдельности, затем получил их минимальное и максимальное значения, а затем объединил их для создания максимального и минимального фона.
Надеюсь, это поможет:)
Хорошего дня.
Спасибо
function [mean_Ifondo,max_Ifondo,min_Ifondo] = promedioImgs(pathImages)
fn = sprintf('%s*.jpg',pathImages);
indexImages = dir(fn);
numImages=length(indexImages);
fn = sprintf('%s%s',pathImages,indexImages(1).name);
primera=imread(fn);
sz = size(primera);
ar = zeros(numImages,sz(1),sz(2),sz(3));
r = zeros(numImages,sz(1),sz(2));
g = zeros(numImages,sz(1),sz(2));
b = zeros(numImages,sz(1),sz(2));
Ifondo=0;
for i=1:numImages
fn = sprintf('%s%s',pathImages,indexImages(i).name);
primera=imread(fn);
primera=double(primera);
ar(i,:,:,:) = primera;
r(i,:,:) = ar(i,:,:,1);
g(i,:,:) = ar(i,:,:,2);
b(i,:,:) = ar(i,:,:,3);
if(i==1)
Ifondo=double(primera);
else
Ifondo=Ifondo+primera;
end
end
mean_Ifondo= uint8(round(Ifondo/numImages));
for i = 1:sz(1)
for j = 1:sz(2)
max_r(i,j) = max(r(:,i,j));
max_g(i,j) = max(g(:,i,j));
max_b(i,j) = max(b(:,i,j));
min_r(i,j) = min(r(:,i,j));
min_g(i,j) = min(g(:,i,j));
min_b(i,j) = min(b(:,i,j));
end
end
max_Ifondo(:,:,1) = max_r;
max_Ifondo(:,:,2) = max_g;
max_Ifondo(:,:,3) = max_b;
min_Ifondo(:,:,1) = min_r;
min_Ifondo(:,:,2) = min_g;
min_Ifondo(:,:,3) = min_b;
end