如何在Matlab中平均多个图像?
image-processing
matlab
6
0

我正在尝试从1000帧中获取平均图像。

  • 每个图像都是512 x 512像素大小。我从实验中得到的文件是tiff单元16数据。
  • tiff文件包含1000个相同斑点的帧。

我当时想写一个文件,我从tiff文件中读出1000帧,然后取它们的平均值,但是似乎很快就会消耗掉内存。

获得这1000帧的平均图像的更好方法是什么。如果唯一的方法是将所有帧加载到matlab中之后对它们进行平均,那么我应该如何对1000帧进行平均?谢谢。

参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

尝试以下方法:

a=zeros(512);
for i=1:1000
    a=a+frame(i);
end
a=a/1000;

a是帧的平均值。

收藏
评论

读取每个图像后,您可以将其累积在临时变量中,即在每个步骤将当前图像添加到该变量中。读取所有图像后,累加器将存储所有图像的总和。最后,将其除以图片数量即可得到最终图片。

但是重要的是,图像通常以uint8(无符号的8位整数)存储。如果加起来,就会发生溢出。为防止此累加器应为uint32或double。如果希望最终图像为uint8,则需要进行显式转换。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号