1. 程式人生 > 程式設計 >使用ITK-SNAP進行摳圖操作並儲存mask的例項

使用ITK-SNAP進行摳圖操作並儲存mask的例項

問題描述:

想要去掉影象背景,只保留中心部分

目標:

1.利用ITK-SNAP製作二值化標籤(即mask)

2.利用軟體ITK-SNAP把一幅影象中自己想要的部分摳出來

步驟:

1.儲存mask

開啟ITK-SNAP,這是一款可以方便進行勾畫操作,製作標籤的軟體

1.點選勾畫按鈕

使用ITK-SNAP進行摳圖操作並儲存mask的例項

2.在影象中選點進行勾畫

使用ITK-SNAP進行摳圖操作並儲存mask的例項

3.勾畫完成後點選accept,可以看到所勾畫的區域被標籤顏色所覆蓋

使用ITK-SNAP進行摳圖操作並儲存mask的例項

4.滾動滑鼠滾輪到下一層(對於3D影象),繼續勾畫

tips:點選"paste last polygon"按鈕使用上一層的勾畫結果,拖動勾畫框可以進行修改

使用ITK-SNAP進行摳圖操作並儲存mask的例項

5.勾畫完成後按ctrl+S儲存影象,此時所儲存的即為二值化的mask(標籤)

(背景部分是0,高亮區域是設定的label值,這裡為1)

使用ITK-SNAP進行摳圖操作並儲存mask的例項

2.提取目標區域(摳圖)

思想:將儲存的二值化mask與原影象做點乘,就可以將去除無關背景,得到中心區域的目標影象

方法:(對於nii格式的影象)

import nibabel as nib
import numpy as np

index = list(['1','14','4','5','7','70','148'])#一共7張待處理影象
for i in range (len(index)):
 #影象位置
 nii_file = '/home/YinXiaolong/1909/MRBrainS18_data/training_corrected_selected/'+index[i]+'/data/reg_IR.nii.gz'
 nii_file2 = '/home/YinXiaolong/1910/mask_multiple/mask/' +'mask'+ index[i]+ '.nii.gz'
 #載入影象
 img = nib.load(nii_file).get_fdata()
 img2 = nib.load(nii_file2).get_fdata()
 #兩幅影象相乘
 img3 = np.multiply(img,img2)
 #將矩陣轉換為nii
 array_img = nib.Nifti1Image(img3,None)
 #儲存並匯出
 nib.save(array_img,'reg_IR'+'_'+index[i]+'.nii')
 print('img'+index[i]+'Done')

對於一般格式影象利用numpy中的img = np.multiply(img1,img2)進行兩幅影象的點乘即可。

以上這篇使用ITK-SNAP進行摳圖操作並儲存mask的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。