我想使用 将图像单元格数组一起添加imadd
,但imadd
只需要两个参数。MATLAB中是否有一个reduce函数,我可以使用将所有这些图像添加在一起而无需编写for循环?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
我想使用 将图像单元格数组一起添加imadd
,但imadd
只需要两个参数。MATLAB中是否有一个reduce函数,我可以使用将所有这些图像添加在一起而无需编写for循环?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
您可以只使用具有额外维度的数组。例如二维(灰度图像)
images = {im1, im2, im3};
imarr = cat(3, images{:});
imsum = sum(imarr, 3);
当然,首先不需要创建元胞数组;你可以直接去
imarr = cat(3, im1, im2, im3);
imsum = sum(imarr, 3);
甚至
imsum = sum(cat(ndims(im1)+1, im1, im2, im3),ndims(im1)+1);
这也更普遍地结合了任何维度矩阵。
由于您使用的是图像处理工具箱,因此也可以使用IMLINCOMB函数(图像的线性组合),只需将所有系数设为 1:
imsum = imlincomb(1,im1, 1,im2, 1,im3)