Проблема, вероятно, состоит в том, что все данные изображения имеют тип uint8
, поэтому их сложение приводит к насыщению при значении 255 для значений пикселей, что дает вам в основном белое изображение затем в конечном итоге выглядит черным, когда вы делите на количество изображений. Вы должны преобразовать ваши изображения в другой тип данных, например double
, затем выполнить усреднение, а затем преобразовать обратно в uint8
:
% Load your images:
image1 = imread('PIC1.jpg');
image2 = imread('PIC2.jpg');
image3 = imread('PIC3.jpg');
image4 = imread('PIC4.jpg');
% Convert the images to type double and sum them:
imageSum = double(image1) + double(image2) + double(image3) + double(image4);
% Divide by the number of images and convert back to type uint8:
averageImage = uint8(imageSum./4);
% Display the averaged image:
imshow(averageImage);
СТОРОННОЕ ПРИМЕЧАНИЕ: Вам следует избегать присвоения вашим переменным тех же имен, что и любым существующим функциям, поскольку это может вызвать проблемы / путаницу. Вот почему я изменил переменную sum
на imageSum
(есть встроенная функция sum
).