平均图像(类型错误)

时间:2012-02-27 15:57:21

标签: matlab image-processing

我正在尝试在matlab中为averaging images编写一个函数(所有相同的大小和格式(.png))。但目前它并没有真正发挥作用。我得到的错误是:“使用+时出错,整数只能与同一个类的整数组合,或标量加倍。

代码如下。图像全部调整为相同大小,并且如果比例不相等则应用填充(使用Alpha通道填充,以使填充透明)。图像都是正确的png,可以在photoshop等中打开而不会出错。

如果我理解正确,您不必在matlab中初始化或声明变量。这可能是我问题的一部分。我的正常(处理/ java)方法是将containerAv初始化为大小(x,y,3),将所有图像的所有颜色值添加到其中,然后将所有值除以图像的数量。给你一般的形象。

我真的不知道如何在matlab中做到这一点。我究竟做错了什么?我如何重写这段代码,以便获得rgb平均图像?

function imageCentroid(imageList, resizeFolder, outputFolder, x, y)

    % local variable
    centroidImage = zeros([x y 3]);

    % loop through all images in the resizeFolder
    for i=1:length(imageList)

        % get filename and load image
        fname = imageList(i).name;
        container = imread([resizeFolder fname]);

        % add container values to centroidImage
        centroidImage = centroidImage + container;

    end

    % calculate mean image (divide by number of images)
    centroidImage = centroidImage / length(imageList);

    % save mean image
    imwrite(centroidImage, [outputFolder 'centroid.png']);

end

1 个答案:

答案 0 :(得分:0)

可能会改变:

container = imread([resizeFolder fname]);

container = im2double(imread([resizeFolder fname]));