图像avergaing并保持图像在MATLAB中

时间:2016-06-29 08:40:07

标签: matlab image-processing average processing-efficiency

我正在录制一些图像,并将它们存储在三维数组中,就像图像的“叠堆”一样:

 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的慢循环,速度非常慢。加速平均的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

MATLAB中的mean函数支持一个参数来设置它正在处理的维度 由于您在第三维上堆叠图像,您应该在该维度上应用均值运算符 - avgIma = mean(imArray, 3)