我正在尝试在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
答案 0 :(得分:0)
可能会改变:
container = imread([resizeFolder fname]);
到
container = im2double(imread([resizeFolder fname]));