【发布时间】:2016-10-31 20:33:36
【问题描述】:
我正在记录一些图像并将它们存储在一个 3 维数组中,就像“堆叠的一堆”图像一样,如下所示:
for i = 1:numberOfImages
ima = pfREAD_IMAGE(board_handle, 0, imasize, ima_ptr, 30000);
imArray(:,:,i) = ima;
end
其中pfREAD_IMAGE() 是获取图像的函数。之后我想计算所有图像的平均值,但保留所有单独的图像。我是这样做的:
[imHeight, imWidth, imStackHeight] = size(imArray);
avgIma = zeros(imHeight, imWidth);
for i = 1:imHeight
for j = 1:imWidth
avgIma(i,j) = mean(imArray(i,j,:));
end
end
此方法有效,但由于 MATLAB 的缓慢循环而非常慢。加快平均速度的最佳方法是什么?
【问题讨论】:
-
avgIma=mean(imArray,3) -
@BillBokeey 太好了,谢谢!
标签: matlab image-processing average processing-efficiency