簡體   English   中英

如何將 3D nii 多類蒙版圖像文件轉換為 2D.png 圖像

[英]how to convert 3D nii multi-class mask image file into 2D .png images

我有一個包含 150 個 4D.nii 圖像的數據集。 只有第 0 幀和第 9 幀有分割,所以我只選擇了這些部分,以便新數據集包含 300 張 3D 圖像,每張圖像在 z 軸上有 13 張圖像。 input_image_mask 是 3D 圖像:


input_image_mask = nib.load('masks/mask0A0S9V9_sa_gt.nii' + '.gz')  
for i in range(input_mask.shape[2]):  
    input_slice_mask = np.asarray(input_mask.get_data()*255) [:,:,i].astype(np.float32)  
    if len(input_slice_mask.shape)==2:  
        input_slice_mask = np.expand_dims(input_slice_mask, axis=-1)  
        path_mask = os.path.join('Desktop/Ilkay/M/masks/2d/' + "slicem" + str(i) + ".png")  
        cv2.imwrite(path_mask, input_slice_mask)  
    else:
        # if there are multiple channel, move axis to have the channel dimension as first dimension
        input_slice_mask = np.moveaxis(input_slice_mask, 2, 0)


盡管此代碼運行沒有問題,但 output 圖像是黑白的。 而它應該是一個多類掩碼。 如果有人可以幫助我解決這個問題,我將不勝感激。

我可以解決我的問題,這就是解決方案。 我希望它會幫助別人。

all_img = os.listdir(path)

new_size = 256
masks = []
images = []
time = [0,9,10,11,12,23,30]
for name in all_img:
    path_ = path + name
#     print('path_number', path_)
    train_ids = next(os.walk(path_))[2]
    img_tr = nib.load(path_ + '/' + train_ids[0]).get_data()
    mask_tr = nib.load(path_ + '/' + train_ids[1]).get_data()
    img_arr = np.asarray(img_tr)
    mask_arr = np.asarray(mask_tr)
    for t in time: 
        if t in range((mask_tr.shape)[3]-1):
            
            init_mask = mask_tr[:,:,:,t].astype(np.float32)
            init_img = img_tr[:,:,:,t].astype(np.float32)

        #     print(init_mask.shape)
            for z in range((img_arr.shape)[2]):
                init2_mask = init_mask[:,:,z]
                _mask = st.resize(init2_mask, (new_size, new_size))
                masks.append(_mask)
                init2_img = init_img[:,:,z]
                _img = st.resize(init2_img, (new_size, new_size))
                images.append(_img)

masks = np.asarray(masks)
images = np.asarray(images)

np.save('mmn_masks', masks) # save the file 
np.save('mmn_images', images)

我決定將它們保存為 NumPy 數組,而不是轉換為 .png 圖像。

暫無
暫無

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

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