簡體   English   中英

MATLAB的減少功能?

[英]MATLAB reduce function?

我想使用imadd將圖像的單元格數組添加在一起,但是imadd僅需要兩個參數。 MATLAB中是否有reduce函數,可以在不編寫for循環的情況下將所有這些圖像加在一起?

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);

通常也可以合並任何維矩陣。

由於您使用的是圖像處理工具箱,因此還可以使用IMLINCOMB函數(圖像的線性組合),只需將所有系數設置為一個即可:

imsum = imlincomb(1,im1, 1,im2, 1,im3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM