を使用して画像のセル配列を一緒に追加したいのですがimadd
、imadd
2 つの引数しか取りません。MATLAB に、for ループを記述せずにこれらの画像をすべて追加できる reduce 関数はありますか?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
を使用して画像のセル配列を一緒に追加したいのですがimadd
、imadd
2 つの引数しか取りません。MATLAB に、for ループを記述せずにこれらの画像をすべて追加できる reduce 関数はありますか?
images = {im1, im2, im3};
sum = reduce(@imadd, images);
余分な次元を持つ配列を使用できます。例: 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);
これは、より一般的に任意の次元行列を結合します。
Image Processing Toolbox を使用しているため、IMLINCOMB関数 (イメージの線形結合) も使用できます。すべての係数を 1 つとして与えるだけです。
imsum = imlincomb(1,im1, 1,im2, 1,im3)