swi.nii 图像(医学图像)中的 3d numpy 数组中的 Np.min

Posted

技术标签:

【中文标题】swi.nii 图像(医学图像)中的 3d numpy 数组中的 Np.min【英文标题】:Np.min in in 3d numpy array in swi.nii image(medical image) 【发布时间】:2021-12-25 21:13:49 【问题描述】:

我想为 3d numpy 数组(swi.nii.gz 医学图像)计算 np.min,但由于源图像中的空白区域,结果图像是黑色的,我无法在计算中指定np.min 将非零点视为最小值。 我很容易计算出 np.max。但是基于 z 轴,3d numpy 数组的 np.min 太难了。

import nibabel as nib
import matplotlib.pyplot as plt
import numpy as np
import os
from os import listdir
from os.path import isfile, join
import glob


image_path = 'd:\img\swi.nii.gz'

# comment [load img by nibabel]
image_obj = nib.load(image_path)

image_data = image_obj.get_fdata()
print(f'type of images class=type(image_data)')
print(image_data)

plt.title(os.path.basename(image_path))

# comment [plt.imshow(np.min(np.where(image_data>0,image_data,1), axis=2), cmap='jet')
# plt.imshow(np.min(np.ndarray.nonzero(image_data), axis=2), cmap='jet')]

plt.imshow(np.min(image_data>0, axis=2), cmap='jet')

plt.axis('off')

plt.show()

click here to see the output image

while the output image should be this

【问题讨论】:

1.请不要发布您的代码的屏幕截图,而是发布实际代码。 2. 你说的空白是什么意思?你能创建一个虚拟数据集,每个维度可能缩小到几个像素吗? 1_好的,我会把代码发给你,2_医学图像中有很多像素为零值3_我无法创建虚拟数据集,数据集是真实的(注意:代码(“(np .min(image_data,axis=2)cmap='jet')") 适用于任何 nii 图像,例如 Tof.nii 和 .. 除了 swi.nii 图像)____ image_data 是 3d numpy 数组 我完成了问题并编写了主要代码 【参考方案1】:

好的,我认为我知道你的意思。与

我不能在 np.min 的计算中指定将非零点视为最小值

你的意思是说你的算法应该

找出不为零的最低像素值

?

如果是这样,请这样做:

minimum = np.min(image[image != 0])

编辑:您更新的代码看起来像您想要沿特定轴的最小值。这是一个完全不同的问题。试试这个:

minimum = np.ma.masked_equal(image, 0).min(axis=2)

【讨论】:

感谢您的回复,但是还是不行,输出的图片是黑色的,还有散落的白点 这个代码更好,可以显示头骨的图像,但还不能清楚地显示内部血管。 @nazi 好的,此时您不是要我修复您的代码,而是要修复您的算法。这不是我能做的,尤其是在没有输入数据的情况下(即便如此,这也将是太多的工作)。我建议您阅读适用于您的输入数据类型的成像算法。我确信有关于如何最好地可视化你所拥有的任何东西的科学论文。到底是什么? PET、CCT、MRT? 感谢您的帮助,我认为这个算法是正确的,因为我在其他医学图像上这样做但它不适用于 swi.nii 图像(MRI)。无论如何,非常感谢您,如果您想到更好的解决方案,请告诉我。非常感谢 请问,当我们使用 np.ma.masked_equal(nparray, 0) 时,你能帮帮我吗,这个函数将 0 替换为“--”,所以当我们使用 np.min 时,“-- " 认为是最小元素所以输出变为假,而我希望最小元素非零且非"--"。

以上是关于swi.nii 图像(医学图像)中的 3d numpy 数组中的 Np.min的主要内容,如果未能解决你的问题,请参考以下文章

3d医学图像数据载入()torchio库

3d医学图像数据载入()torchio库

3d医学图像数据载入()torchio库

论文阅读MONAI Label:人工智能辅助的 3D 医学图像交互式标注框架

论文阅读MONAI Label:人工智能辅助的 3D 医学图像交互式标注框架

医学图像分割及应用