微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

非常大的医学图像矩阵的特征值分解如CT图像的像素物理坐标

如何解决非常大的医学图像矩阵的特征值分解如CT图像的像素物理坐标

我正在尝试对大小超过 788000 * 788000 的巨大矩阵进行特征值分解,以进行医学图像分析。矩阵不是稀疏的,矩阵中的每个元素都有一个实数。并且,例如,我想获得前 20 个最大特征值对应的前 20 个特征向量。

  1. 虽然我的电脑配置非常优秀,但电脑无法对庞大的矩阵进行特征值分解,内存溢出。
  2. 我使用 Python 语言和其他相关包(如 numpy、opencv、matplotlib 等)编写计算机代码

有没有其他python库或相关包可以做特征值分解和解决计算问题? 或者有没有其他方法可以用python解决这个问题? 我现在处境艰难,希望有人能帮助我。 非常感谢。

不好意思,我写错了,巨大的矩阵也是对称的。

解决方法

首先,我对用于图像分析的 PCA 不太熟悉。 This paper 描述了一种对图像进行 PCA 的方法,其中对于 WxH 图像,您按列执行 PCA,只需要对 WxW 矩阵进行 SVD。但是,这会为每个图像生成一个 PCA,所以这不完全是您所要求的。

由于 SVD (singular value decomposition) 具有三次 (O(n^3)) 时间复杂度,我怀疑在任何机器上以任何语言处理您提出的数字是否可行。如果您仍然真的想按照自己的方式行事,您可能需要考虑首先通过调整图像大小以降低像素数并在较小的图像上运行您提出的方法来减小图像大小。有关不同的调整大小算法,请参阅 this 页。其中许多是在 PIL Python 图像模块 (see here) 中实现的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。