图像Avergaing并将图像保存在MATLAB中



我正在录制许多图像,然后将它们存储在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的缓慢循环,因此非常慢。加速平均的最佳方法是什么?

MATLAB中的mean函数支持一个参数来设置它正在工作的维度。
由于将图像堆叠在第三维上,您应该做的是将平均操作员应用于该维度-avgIma = mean(imArray, 3)

最新更新