1
我想使用imadd
将图像单元阵列添加到一起,但imadd
只需要两个参数。在MATLAB中有没有减少函数,我可以将所有这些图像一起添加,而无需编写for循环?MATLAB减少功能?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
我想使用imadd
将图像单元阵列添加到一起,但imadd
只需要两个参数。在MATLAB中有没有减少函数,我可以将所有这些图像一起添加,而无需编写for循环?MATLAB减少功能?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
您可以只使用一个具有额外维度的数组。例如。 for 2-d(灰度图像)
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功能(图像的线性组合)也可使用,只要给所有的系数作为一个:
imsum = imlincomb(1,im1, 1,im2, 1,im3)