Matlab实现批量化图像平均

具体代码如下:

function [] = fun ()
paths = ['G:\路径1\';'G:\路径2\';'G:\路径3\']; % 路径需为目录
n = size(paths,1); % 目录个数
for i=1:n % 遍历每一个目录
    path = paths(i,:); % 目录
    files = dir(path); % 列出指定目录下所有子文件夹和文件
    % 获取指定目录下的文件个数
    size0 = size(files); 
    length = size0(1);

    % 假设指定目录下全部为图片文件
    % 由3开始是为了跳过./和../
    a = strcat(path,files(3,1).name); % 第一张图片
    b = imread(a); 
    sum = uint32(b); % 总和

    % 遍历所有图片并加到sum上
    for i=4:length 
        fileName = strcat(path,files(i,1).name);
        original_picture = imread(fileName);
        sum=imadd(sum,uint32(original_picture)); % perform addition without overflow
    end

    sum = imdivide(sum,length - 2); % 计算均值
    sum_image = uint8(sum); % 转为8bit
    % 保存图像到当前目录,并命名为sum_imag.bmp
    % 图像格式根据需求修改
    imwrite(sum_image,[path,'sum_image.bmp'],'bmp');  

end

end

你可能感兴趣的:(matlab,开发语言,图像处理,计算机视觉)