利用 numpy isin 函数
import torch
import torch.nn.functional as F
import numpy as np
import os
import SimpleITK as sitk
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
plt.rcParams['xtick.direction'] = 'in' #使得x轴刻度线向内
plt.rcParams['ytick.direction'] = 'in' #使得y轴刻度线向内
def MaxMinNormalization(image):
Max = np.max(image)
Min = np.min(image)
image = (image - Min) / (Max - Min + 0.000001)
return image
root = r'C:UserstangxPycharmProjectsmridatatrainIBIS0015V06'
segment_path = os.path.join(root,"segment.nii.gz")
segment_array = sitk.GetArrayFromImage(sitk.ReadImage(segment_path))
t1_path = os.path.join(root,"t1.nii.gz")
t1_array = sitk.GetArrayFromImage(sitk.ReadImage(t1_path))
t1_array = MaxMinNormalization(t1_array)
t1_array = (t1_array * 255).astype(int)
print(t1_array.max())
print(t1_array.min())
print(t1_array.shape)
def count_distribution(img):
dis_list = np.zeros(256)
for i in range(img.shape[0]):
for j in range(img.shape[1]):
for k in range(img.shape[2]):
index = int(img[i,j,k])
if index != 0:
dis_list[index] = dis_list[index] + 1
return dis_list
t1_array_csf_label = np.isin(segment_array,1)
t1_array_csf_label = t1_array_csf_label.astype(int)



