簡體   English   中英

如何使用 Nibabel 從同一個文件夾中讀取多個 Nifti 文件?

[英]How to read multiple Nifti files from the same folder with Nibabel?

我確實看到了一些與 Nibabel 相關的 tuts,當你只讀取一個 nii 圖像時它們工作正常,但我需要從同一個文件夾中讀取 167 個文件,但我不知道該怎么做。 我嘗試使用 glob,因為我們將它用於 OpenCV,但它與 Nibabel 的工作方式不同。

data = glob.glob('path to my data' + '*.nii.gz')
print(len(data))
print(data)
data = np.asarray(data)
print(data)

正如上面提到的評論之一,您描述的data只包含圖像文件名而不是它們的像素。

一旦你有了文件名列表(或一些容器,其中每個文件名字符串都是一個元素) data ,你可以這樣做:

import numpy as np;
import nibabel as nb;

if "imdata" not in locals():    

    for i in range ( len ( data ) ):

        imname = data [ i ];

        if "imdata" not in locals():
            imdata = nb.load ( imname ).get_fdata().flatten();
            imlen  = len ( imdata );
            imdata = imdata.reshape ( 1, imlen );
        else:
            imdata = np.append ( imdata, nb.load ( imname ).get_fdata().flatten().reshape ( 1, imlen ), axis=0 );

如果圖像大小相同,這將起作用 - 您將獲得#images x #pixelsperimage的矩陣。 您當然也可以在 3D 或 4D 中執行此操作,具體取決於您需要對圖像數據執行的操作。

locals()的使用有點多,對我來說,當我寫這個時它很方便,因為不必在同一個 session 中重新加載圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM