首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切片3D数组与投影3D数组

切片3D数组与投影3D数组
EN

Stack Overflow用户
提问于 2019-11-06 06:59:10
回答 1查看 234关注 0票数 0

Link to array file

我是图像处理的新手,并试图理解投影。因此,当我们有一个3D图像时,它只是一个3D numpy数组,我通过从3D数组中切出一个2D数组来查看它。为了进行正交投影,我简单地沿着一个轴对数组求和。下面是我的代码:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt

#shape of the 'image' array is (256, 256, 176) so i am assuming there are 256 slices and row and column of each slice is 256x176
image = np.load('brain_ct.npy')

#when i sum along axis 0 or axis 1, the image shows up as blank with some warnings
#(Warning: converting a masked element to nan)
#only summing up along axis 2 works (not sure why is that)
collapsed = np.sum(image, axis=2)

plt.imshow(collapsed, cmap='gray')

我不确定为什么沿着轴0和1求和不起作用。此外,我不确定轴2给我的是什么视图(上/下/侧)?最后,如果沿着一个轴的总和得到正交投影,我如何着手进行倾斜和透视投影。有没有什么变换矩阵,我必须将图像坐标相乘?

谢谢大家。

EN

回答 1

Stack Overflow用户

发布于 2019-11-06 09:17:42

该错误显示您正在加载的是numpy.ma.MaskedArray而不是NumPy数组。然而,我不明白为什么你不会沿着axis=2得到误差,因为任何遮罩点都会沿着每个维度投影。这可能是因为你屏蔽了整个平面,然后对0求和只会得到一个nans数组。我不确定,但可能是np.sum不能正确处理掩码数组,您应该使用image.sum(),它可能更了解如何处理掩码。如果您共享您的.npy文件,我们可以提供更个性化的响应。

通常,求和是投影的一种方式,但也可以进行max()投影,这是最常见的体积投影形式。

关于倾斜投影,这远远不能用一个简洁的答案来概括,但通常是这样的,你想要转换图像然后进行投影。您可以查看scipy.ndimage模块以了解有关这方面的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58720726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档