python - mha 脑肿瘤文件中的图像数据
问题描述
我有一个 MHA 文件,当我写
from medpy.io import load
image_data, image_header = load("HG/0001/VSD.Brain.XX.O.MR_Flair/VSD.Brain.XX.O.MR_Flair.684.mha")
print(image_data.shape)
我得到一个元组 (160, 216, 176)。这些尺寸代表什么(作为参考,这些是 BRATS 2013 的脑肿瘤图像)?感谢您的帮助。
编辑:在 Jupyter 上让滑块工作我做了
import matplotlib.pyplot as plt
from ipywidgets import interact
import numpy as np
%matplotlib inline
@interact(x=(0, image_data.shape[2]))
def update(x):
plt.imshow(np.flip(image_data[x].T, 0))
但当然你的代码可能适用于其他编辑器
解决方案
根据文档, load(image) “加载图像并返回ndarray
图像的像素内容以及标题对象。”
再往下medpy.io.load
说,image_data 是“图像数据为 numpy 数组,顺序为 x,y,z,c。”。
编辑:因为我有点想看看这个文件中到底有什么,我整理了一个快速脚本(主要基于滑块演示)来看看。我会把它留在这里,以防它对某人有用。(单击“图层”滑块以选择要绘制的 z 坐标。)
from medpy.io import load
image_data, image_header = load("/tmp/VSD.Brain.XX.O.MR_Flair.684.mha")
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button, RadioButtons
fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.25)
axlayer = plt.axes([0.25, 0.1, 0.65, 0.03])
slider_layer = Slider(axlayer, 'Layer', 1, image_data.shape[2], valinit=1, valstep=1)
def update(val):
layer = slider_layer.val
ax.imshow(image_data[:,:,layer])
fig.canvas.draw_idle()
slider_layer.on_changed(update)
ax.imshow(image_data[:,:,0])
plt.show()
(这间接证实了image_data
拥有 3-D 体素图像。)
推荐阅读
- blockchain - Corda-重复附件异常
- ruby-on-rails - Rails 应用程序不断加热 pg_type 和 pg_attribute 表如何减少此调用
- youtube-api - 尽管 Youtube API 返回错误,但已发布帖子
- selenium - Firefox 卡在使用 Selenium-Webdriver 进行登录操作
- java - 将计划的开始值和结束值建模为变量
- delphi - 操作属性下拉列表显示“您无法设置属性...”
- java - 将目录路径字符串从 Android 转发到 Lucene 库
- javascript - 通过加入两个数组来创建新数组
- javascript - 在 React/JS 中使用复杂路径进行动态导入
- ruby-on-rails - 不需要在每个 rswag 响应块中调用参数