【问题标题】:Image avergaing and keeping the images in MATLAB图像平均并将图像保存在 MATLAB 中
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-06-08
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 2020-11-01
    • 2015-05-11
    • 2012-08-22
    • 2017-02-19
    相关资源
    最近更新 更多