Я относительно новичок в MATLAB и обработке изображений, поэтому поймите меня. Я работаю в эксперименте по обработке изображений, и на моем текущем этапе мне нужно 1) прочитать некоторые изображения (около 100 изображений одинакового размера) 2) сохранить их в переменной (либо ячейке, вектор или структуре) 3) Найти дисперсию каждого пикселя в каждом изображении 4) Сформировать новую матрицу для хранения каждого вычисленного дисперсиюКак найти дисперсию нескольких изображений в MATLAB
Вот мой код, но я не уверен, что он решает эту проблему не выдержать, что я получаю результат
clc;
im_File = dir('*.bmp');
files = {im_File.name};
for k=1:numel(files)
im{k} = imread(files{k});
%# Get the number of dimensions for your arrays
dim = ndims(im{k});
all_images = cat(dim+1,im{:});
% Use linear combine to acquire all the images
Linear_comb_im = imlincomb(1,all_images,'uin');
%get the variance of all images
computed_variance = var(double(Linear_comb_im),1,dim+1);
end
Почему вы называете 'imlincomb'? Вы должны просто объединиться вдоль «dim + 1», как вы это делали (хотя и перемещаете это за пределы цикла), и вычислять дисперсию вдоль измерения «dim + 1» (как вы это сделали). – Suever