def testSeg(): model_folder_path = r'z:\SuccessfulModel\ProstateSegmentation' prostate_segmentor = ProstateSegmentation2D() prostate_segmentor.LoadModel(model_folder_path) import os import glob from MeDIT.SaveAndLoad import LoadNiiData root_folder = r'z:\Data\CS_ProstateCancer_Detect_multicenter\ToTest\Cui hai pei' t2_candidate = glob.glob(os.path.join(root_folder, '*t2*tra*Resize.nii')) if len(t2_candidate) != 1: print('Check T2 Path') return t2_path = r'z:\temp_data\test_data_prostate\301_case2_1.2.840.113619.2.25.4.1415787.1457070159.316\004_AX T2 PROPELLER.nii' image, _, show_data = LoadNiiData(t2_path, dtype=np.float32, is_show_info=True) predict_data, mask, mask_image = prostate_segmentor.Run( image, model_folder_path) from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 Imshow3DArray(predict_data) Imshow3DArray(Normalize01(show_data), ROI=np.asarray(predict_data > 0.5, dtype=np.uint8))
def show_origin_roi(self, value): """展示最原始的ROI,并去掉半月板""" for case in os.listdir(self.root_path): data_path = os.path.join(self.root_path, case, "new_data.nii") data_array = standard(get_array_from_path(data_path)) roi_path = os.path.join(self.root_path, case, "roi.nii.gz") """展示原始ROI""" roi_array = get_array_from_path(roi_path) roi_list = self.get_single_roi(roi_array) # Imshow3DArray(data_array, roi_list) """展示软骨和下骨ROI""" bone_roi_path = os.path.join(self.root_path, case, "moved_new_roi.nii.gz") # 整数 bone_roi_array = get_array_from_path(bone_roi_path) bone_roi_list = self.get_single_roi(bone_roi_array) Imshow3DArray(data_array, bone_roi_list[value]) Imshow3DArray(data_array, roi_list[value]) print(np.unique(bone_roi_array)) """展示计算图像""" four_array = os.path.join(self.root_path, case, "four_T2_array", "T2_3D_array.npy") four_array = np.load(four_array) img_mean = cv2.blur(four_array, (5, 5)) # for i in range(four_array.shape[-1]): # sns.set() # ax = sns.heatmap(img_mean[...,i]) # plt.show() break
def ShowRoi(process_folder): for case in sorted(os.listdir(process_folder)): print(case) case = 'CDM^chen di ming' case_folder = os.path.join(process_folder, case) csv_path = os.path.join(case_folder, 'roi.csv') t2_path = os.path.join(case_folder, 't2.nii') roi_list = ['roi.nii', 'roi0.nii', 'roi1.nii', 'roi2.nii'] with open(csv_path, 'r') as csvfile: reader = csv.DictReader(csvfile) column = [row['ECE'] for row in reader] print(column) _, t2, _ = LoadNiiData(t2_path) Imshow3DArray(Normalize01(t2.transpose((1, 2, 0)))) for roi in roi_list: roi_path = os.path.join(case_folder, roi) if not os.path.exists(roi_path): continue _, roi, _ = LoadNiiData(roi_path) try: Imshow3DArray(Normalize01(t2.transpose((1, 2, 0))), roi=Normalize01(roi.transpose(1, 2, 0))) except Exception as e: print('failed')
def _TestOutput1(): input_list, output_list = ImageInImageOut2D( r'c:\SharedFolder\ProstateSegment\Input_1_Ouput_1\testing', input_shape=[160, 160], batch_size=1, augment_param=random_2d_augment) from MeDIT.Visualization import Imshow3DArray if isinstance(input_list, list): input1, input2, input3 = input_list[0], input_list[1], input_list[2] input1 = np.concatenate( (input1[..., 0], input1[..., 1], input1[..., 2]), axis=2) input2 = np.concatenate( (input2[..., 0], input2[..., 1], input2[..., 2]), axis=2) input3 = np.concatenate( (input3[..., 0], input3[..., 1], input3[..., 2]), axis=2) input1 = np.transpose(input1, (1, 2, 0)) input2 = np.transpose(input2, (1, 2, 0)) input3 = np.transpose(input3, (1, 2, 0)) input_show = np.concatenate((input1, input2, input3), axis=0) roi = np.squeeze(output_list) roi = np.concatenate((np.zeros_like(roi), roi, np.zeros_like(roi)), axis=2) roi = np.concatenate((roi, roi, roi), axis=1) roi = np.transpose(roi, (1, 2, 0)) Imshow3DArray(input_show, ROI=np.asarray(roi, dtype=np.uint8)) elif not isinstance(output_list, list): show_input = np.transpose(np.squeeze(input_list), (1, 2, 0)) show_roi = np.transpose(np.squeeze(output_list), (1, 2, 0)) Imshow3DArray(show_input, ROI=np.asarray(show_roi, dtype=np.uint8))
def show(): """经过显示发现图像并不是很好,可能需要配准一下""" root_path = r"Y:\DYB\2020832DATA\doctor_gao\pet_ct_egfr\EGFR-" for case in os.listdir(root_path): ct_path = os.path.join(root_path, case, "ct.nii") pet_path = os.path.join(root_path, case, "pet.nii") roi_path = os.path.join(root_path, case, "no_name.nii") ct_array = get_array_from_path(ct_path) pet_array = get_array_from_path(pet_path) roi_array = get_array_from_path(roi_path) Imshow3DArray(standard(ct_array), roi_array) Imshow3DArray(standard(pet_array), roi_array)
def TestOneHot(): t2 = np.load(r'D:\ProblemData\StoreFormatData\CAI NING_0007947872\t2.npy') roi_onehot = np.load( r'D:\ProblemData\StoreFormatData\CAI NING_0007947872\roi_onehot.npy') print(type(t2), type(roi_onehot)) from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 Imshow3DArray(Normalize01(t2), roi_onehot[..., 0]) Imshow3DArray(Normalize01(t2), roi_onehot[..., 1]) Imshow3DArray(Normalize01(t2), roi_onehot[..., 2])
def testDetect(): # model_folder_path = r'C:\MyCode\MPApp\DPmodel\CSPCaDetection' model_folder_path = r'Z:\SuccessfulModel\PCaDetection25_2' # pca_detect = CST2AdcDwiProstateRoiDetect() pca_detect = CST2AdcDwiDetect2_5D() pca_detect.LoadModel(model_folder_path) from MeDIT.SaveAndLoad import LoadNiiData t2_image, _, t2_data = LoadNiiData(r'z:\Data\CS_ProstateCancer_Detect_multicenter\ToTest\CAO YONG CHENG\004_t2_fse_tra_Resize.nii', dtype=np.float32, is_show_info=True) dwi_image, _, dwi_data = LoadNiiData(r'z:\Data\CS_ProstateCancer_Detect_multicenter\ToTest\CAO YONG CHENG\007_epi_dwi_tra_CBSF5_NL3_b750_Reg_Resize.nii', dtype=np.float32, is_show_info=True) adc_image, _, adc_data = LoadNiiData(r'z:\Data\CS_ProstateCancer_Detect_multicenter\ToTest\CAO YONG CHENG\010_epi_dwi_tra_CBSF5_NL3_ADC_Reg_Resize.nii', dtype=np.float32, is_show_info=True) prostate_roi_image, _, prostate_roi_data = LoadNiiData(r'z:\Data\CS_ProstateCancer_Detect_multicenter\ToTest\CAO YONG CHENG\prostate_roi.nii.gz', dtype=np.uint8) # dwi_data = dwi_data[..., -1] # dwi_image = GetImageFromArrayByImage(dwi_data, adc_image) print(t2_data.shape, adc_data.shape, dwi_data.shape) pred, _, mask, _ = pca_detect.Run(t2_image, adc_image, dwi_image, model_folder_path, prostate_roi_image=prostate_roi_image) from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 show_data = np.concatenate((Normalize01(t2_data), Normalize01(dwi_data), Normalize01(adc_data), pred), axis=1) show_roi = np.concatenate((mask, mask, mask, mask), axis=1) show_prostate_roi = np.concatenate((prostate_roi_data, prostate_roi_data, prostate_roi_data), axis=1) Imshow3DArray(show_data, ROI=[show_roi, show_prostate_roi])
def show(self): for file in os.listdir(self.case_path): if file.split("_")[-1] == "src.nii": data_path = os.path.join(self.case_path, file) data_array = standard(get_array_from_path(data_path)) roi_array_list = self.get_roi_list() Imshow3DArray(data_array, roi_array_list)
def get_croped_data_roi(data_path, roi_path, store_path=None): data_array = get_array_from_path(data_path) # data_array = np.flipud(data_array) # 注意这里的数据要进行翻转的 roi_array = get_array_from_path(roi_path) data_array = standard(data_array) crop_array = crop_data_array(roi_array, data_array) def resize_data(data_array, resized_shape): resized_data = cv2.resize(data_array, resized_shape, interpolation=cv2.INTER_NEAREST) return resized_data roi_new = crop_data_array(roi_array, roi_array) new_array = resize_data(crop_array, (224, 224)) roi_new = resize_data(roi_new, (224, 224)) # 选择只含有roi的层进行保存 index = [] for i in range(roi_new.shape[-1]): if np.sum(roi_new[..., i]) != 0: index.append(i) roi_new = roi_new[..., index] data_new = new_array[..., index] Imshow3DArray(data_new, roi_new)
def ShowData(): from MeDIT.SaveAndLoad import LoadNiiData from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 import matplotlib.pyplot as plt folder = r'Z:\RawData\TZ_ROI_20191119\prostate segmentation _PZ_TZ\Nii' case_list = os.listdir(folder) for case in case_list: print(case) case_path = os.path.join(folder, case) t2_path = os.path.join(case_path, 't2_Resize.nii') pz_path = os.path.join(case_path, 'ROI_jkw0.nii') cg_path = os.path.join(case_path, 'ROI_jkw1.nii') if not os.path.exists(cg_path): print('cg not exists') continue if not os.path.exists(pz_path): print('pz not exists') continue _, _, t2_data = LoadNiiData(t2_path, dtype=np.float32, is_show_info=False) _, _, pz_data = LoadNiiData(pz_path, dtype=np.float32, is_show_info=False) _, _, cg_data = LoadNiiData(cg_path, dtype=np.float32, is_show_info=False) Imshow3DArray(Normalize01(t2_data), roi=[pz_data, cg_data])
def ModelPre(): import numpy as np from CNNModel.SuccessfulModel.ProstateSegment import ProstateSegmentationTrumpetNet # from MeDIT.UsualUse import * from MeDIT.SaveAndLoad import LoadNiiData from MeDIT.Normalize import Normalize01 from MeDIT.Visualization import Imshow3DArray model_path = r'd:\SuccessfulModel\ProstateSegmentTrumpetNet' segment = ProstateSegmentationTrumpetNet() if not segment.LoadConfigAndModel(model_path): print('Load Failed') t2_image, _, t2 = LoadNiiData( r'd:\Data\HouYing\processed\BIAN JIN YOU\t2.nii') preds, mask, mask_image = segment.Run(t2_image) show_data = np.concatenate( (Normalize01(t2), np.clip(preds, a_min=0.0, a_max=1.0)), axis=1) show_roi = np.concatenate((mask, mask), axis=1) Imshow3DArray(show_data, roi=show_roi)
def get_3D_array(self): T_2_array = [] file_list = self.sort_file(self.store_folder_path) for file in reversed(file_list): file_path = os.path.join(self.store_folder_path, file) image_2D_array = np.load(file_path) T_2_array.append(image_2D_array) T_2_array = np.reshape(T_2_array, self.roi_array.shape) roi = np.transpose(self.roi_array, (1, 2, 0)) T_2_array = np.transpose(T_2_array, (1, 2, 0)) Imshow3DArray(T_2_array, roi) # for i in range(20): T_2_array_2D = T_2_array[:, :, 19] roi_array_2D = roi[:, :, 19] ax = sns.heatmap(T_2_array_2D) plt.show() mean_roi = [] for i in np.reshape( T_2_array_2D * roi_array_2D, (self.roi_array.shape[1] * self.roi_array.shape[2])): if i != 0: mean_roi.append(i) print(np.mean(mean_roi)) plt.hist(mean_roi, bins=40) plt.show()
def get_result(): data_path = r"Y:\DYB\shidaoai_vibenii\649302\BLADE42_256_3mm\026_BLADE42_256_3mm.nii" roi_path = r"Y:\DYB\shidaoai_vibenii\649302\BLADE42_256_3mm\026_BLADE42_256_3mm_ROI.mha" data_array = standard(get_array_from_path(data_path)) roi_array = get_array_from_path(roi_path) new_roi = binary_dilation(roi_array) Imshow3DArray(data_array, [roi_array, new_roi*1])
def get_roi(): root_path = r"Y:\DYB\2020832DATA\doctor_xie\Normal_data_nii_and_T2" for case in os.listdir(root_path)[4:]: case_path = os.path.join(root_path, case) data_path = os.path.join(case_path, "data.nii") data = sitk.ReadImage(data_path) data_array = get_array_from_path(data_path) data_array = standard(data_array) data_array = np.flipud(data_array) roi_name = ["roi_" + str(i) + ".npy"for i in range(1, 5)] roi_path = [os.path.join(case_path, i) for i in roi_name] roi_array_list = [np.load(i) for i in roi_path] # roi_array_list = [get_big_roi(i) for i in roi_array_list] roi_1 = np.where(roi_array_list[0] == 1, 1, 0) roi_2 = np.where(roi_array_list[1] == 1, 2, 0) roi_3 = np.where(roi_array_list[2] == 1, 3, 0) roi_4 = np.where(roi_array_list[3] == 1, 4, 0) # roi_1 = get_big_roi(roi_1) # roi_2 = get_big_roi(roi_2) # roi_3 = get_big_roi(roi_3) # roi_4 = get_big_roi(roi_4) # big_roi = roi_1 + roi_2 + roi_3 + roi_4 # print(np.sum(roi_1), np.sum(roi_2), np.sum(roi_3), np.sum(roi_4)) Imshow3DArray(data_array, roi_array_list) # SaveArrayToNiiByRef(store_path = os.path.join(case_path, "roi.nii.gz"), # array=big_roi, # ref_image=data) print(case)
def get_image(): data_path = r"Y:\DYB\chang\BAO CAI ZHEN_2769351_sag_Resample.nii" data_array = get_array_from_path(data_path) data_array = standard(data_array) th = filters.threshold_otsu(data_array) roi_array = np.where(data_array > th / 6.1, 1, 0) roi_array = cv2.blur(roi_array, (12, 12)) Imshow3DArray(data_array, roi_array)
def show_T2(root_path): """查看一下图像""" for case in os.listdir(root_path): T2_array = get_array_from_path(os.path.join(root_path, case, "T2.nii")) roi_array = get_array_from_path( os.path.join(root_path, case, "ruan_gu_up_1.nii")) T2_array = standard(T2_array) Imshow3DArray(T2_array, roi_array)
def get_new_pet(root_path): for case in os.listdir(root_path): pet_path = os.path.join(root_path, case, "pet.nii") ct_path = os.path.join(root_path, case, "ct.nii") roi_path = os.path.join(root_path, case, "no_name.nii") roi_array = get_array_from_path(roi_path) reg, result = Registrator_image(fix_path=ct_path, moving_path=pet_path) Imshow3DArray(standard(reg), roi_array)
def show(self): not_t2_data = r"E:\split_data_ACLR_T2\ZHANG YU CHENG-20190601\data_1.nii" data = sitk.ReadImage(not_t2_data) data_array = sitk.GetArrayFromImage(data) data_array = np.transpose(data_array, (1, 2, 0)) print(self.roi_array.shape) print(data_array.shape) roi = np.transpose(self.roi_array, (1, 2, 0)) Imshow3DArray(data_array, roi)
def TestResampleData(): roi_path = r'X:\PrcoessedData\ProstateCancerECE\ZJ^zhang jian\roi.nii' t2_path = r'X:\PrcoessedData\ProstateCancerECE\ZJ^zhang jian\t2.nii' dwi_path = r'X:\PrcoessedData\ProstateCancerECE\ZJ^zhang jian\dwi.nii' adc_path = r'X:\PrcoessedData\ProstateCancerECE\ZJ^zhang jian\adc.nii' from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 _, _, t2 = LoadImage(t2_path, is_show_info=True) _, _, dwi = LoadImage(dwi_path, is_show_info=True) img, _, adc = LoadImage(adc_path, is_show_info=True) _, _, roi = LoadImage(roi_path, dtype=np.uint8, is_show_info=True) # new_dwi = dwi[..., 2] new_img = sitk.GetImageFromArray(new_dwi) new_img.SetDirection(img.GetDirection()) new_img.SetSpacing(img.GetSpacing()) new_img.SetOrigin(img.GetOrigin()) sitk.WriteImage( new_img, os.path.join(r'X:\PrcoessedData\ProstateCancerECE\ZJ^zhang jian', 'max_dwi.nii')) # Imshow3DArray(Normalize01(t2), roi=Normalize01(roi)) Imshow3DArray(Normalize01(dwi)) # Imshow3DArray(Normalize01(adc)) # TestResampleData() ###################################################### # for case in os.listdir(r'X:\PrcoessedData\BCR-ECE-score'): # case_folder = os.path.join(r'X:\PrcoessedData\BCR-ECE-score', case) # if len(os.listdir(case_folder)) < 1: # shutil.copytree(os.path.join(r'X:\RawData\BCR-ECE-score\BCR-ECE-score', case), os.path.join(r'C:\Users\ZhangYihong\Desktop\aaaa', case)) # for case in os.listdir(r'C:\Users\ZhangYihong\Desktop\aaaa\NoPath'): # if case not in os.listdir(r'X:\StoreFormatData\ProstateCancerECE\ResampleData'): # print(case) # # t2_1 = sitk.GetArrayFromImage(sitk.ReadImage(r'X:\RawData\BCR-ECE-score\BCR-ECE-score\CSJ^chen shi jie\dwi.nii')) # t2_2 = sitk.GetArrayFromImage(sitk.ReadImage(r'C:\Users\ZhangYihong\Desktop\aaaa\OriginalPath\CSJ^chen shi jie\dwi.nii')) # print((t2_2 == t2_1).all())
def MultiRoi(): from MeDIT.SaveAndLoad import LoadNiiData data_folder = r'X:\PrcoessedData\ProstateCancerECE' multi_list = [ 'CHEN REN', 'CHEN ZHENG', 'DING YONG MING', 'DU KE BIN', 'FYK^fan yuan kai', 'GAO FA MING', 'GCD^gu chuan dao', 'GCF^gao chang fu', 'GENG LONG XIANG^GENG LONG XIANG', 'GSH^gao si hui', 'GU SI KANG', 'HFL^he fu lin', 'HONG QI YUN', 'JCG^jiang cheng guang', 'JIANG TIAN CAI^JIANG TIAN CAI', 'JJS^jin ju sheng', 'JZL^ji zhao lan', 'LCD^li cong de', 'LCZ^li chao zhi', 'LDJ^lei dao jin', 'LI JIA LIN', 'LLT^liang li tong', 'LRH^lu ronghua', 'MPX^ma pei xi', 'PENG XIAN XIANG', 'QB^qian bin', 'SBQ^shao ba qian', 'SHA GUANG YI^SHA GUANGYI', 'SHEN DAO XIANG', 'SSS^tang shan sheng', 'SUN BING LIANG', 'SUN QING ZHI', 'SUN ZHANG BAO', 'SXC^su xue cao', 'WANG YONG ZHENG', 'WEI CHANG HUA', 'WLB^wu lu bao', 'WLJ^wu liang ju ^13815870351^6924-31', 'WRM^weng rong ming', 'WU XIAO LEI', 'WZC^wu zhi chao', 'XJJ^xu jianjun', 'XJS^xu jingshan ^^6875-+04', 'XNB^xu neng bao', 'XSL^xu sen lou', 'XWC^xia wen cai', 'YANG YONG JIU', 'YFG^yang fu gang', 'YHX^yang hong xiao', 'YRE^yang rong r', 'YRF^yan rong fa', 'YU TU JUN', 'YYX^yin yong xing', 'ZGF^zhu guo fang', 'ZHAO YU LONG', 'ZHP^zhang heping', 'ZMJ^zhao mao jin', 'ZOU SHOU ZHONG', 'ZXJ^zhou xian jin ^^6698+5', 'ZXM^zhou xinmin', 'ZXT^zhu xiao ting', 'ZZF^zhou zheng fang ^^6698', 'ZZQ^zhou zu quan' ] print(len(multi_list)) for a, case in enumerate(multi_list): data_path = os.path.join(data_folder, case) # if not os.path.exists(data_path): # print(case) # else: # data_list = os.listdir(data_path) # roi_dict = {} # for info in data_list: # roi_dict['name'] = case # if 'roi' in info and '.nii' in info: # roi_dict[data_list.index(info)] = info # roi_path = os.path.join(data_path, info) # _, roi, _ = LoadNiiData(roi_path) # label_im, nb_labels = ndimage.label(roi) # for index in range(1, nb_labels+1): # num = str(label_im.tolist()).count(str(index)) # if num >= 10: # roi_dict[index] = num # else: # continue # print(a, roi_dict) roi_path = os.path.join(data_path, 'roi.nii') t2_path = os.path.join(data_path, 't2.nii') _, _, roi = LoadNiiData(roi_path) _, _, t2 = LoadNiiData(t2_path) label_im, nb_labels = ndimage.label(roi) Imshow3DArray(Normalize01(t2), roi=Normalize01(label_im))
def show(self): not_t2_data = r"E:\split_data_ACLR_T2\RUAN XIAO BAI-20140430\data_1.nii" data = sitk.ReadImage(not_t2_data) data_array = sitk.GetArrayFromImage(data) data_array = np.transpose(data_array, (1, 2, 0)) # roi = np.transpose(self.roi_array, (1, 2, 0)) data_array = self.stand(data_array) data_array = np.flipud(data_array) Imshow3DArray(data_array, self.roi_array)
def save_moved_roi(self): roi_array = td.get_array(self.roi_path) roi_4_array = np.where(roi_array == 4, 1, 0) data_array = td.get_array(self.data_path) data_array = td.standard(data_array) data_array = np.flipud(data_array) new_roi_array = self.move_roi(roi_4_array) # SaveNumpyToImageByRef(store_path=os.path.join(self.case_path, "moved_roi_4.nii"), data=new_roi_array, # ref_image=self.data) Imshow3DArray(data_array, [roi_4_array, new_roi_array])
def check_data(): case_path = r"Y:\DYB\PETCT_EGFR\EGFR+\004+" ct_path = os.path.join(case_path, "ct.nii") pet_path = os.path.join(case_path, "pet_Resize.nii") roi_path = os.path.join(case_path, "ct_roi.nii") ct_array = get_array_from_path(ct_path) pet_array = get_array_from_path(pet_path) roi_array = get_array_from_path(roi_path) ct_array = standard(ct_array) pet_array = standard(pet_array) pet_array = np.flipud(pet_array) Imshow3DArray(ct_array, roi_array)
def ShowProblemData(resample_folder, case): case_path = os.path.join(resample_folder, case) t2_path = os.path.join(case_path, 't2.nii') roi_path = os.path.join(case_path, 'roi.nii') dwi_path = os.path.join(case_path, 'dwi_Reg.nii') adc_path = os.path.join(case_path, 'adc_Reg.nii') # Load data _, t2, _ = LoadNiiData(t2_path, dtype=np.float32) _, dwi, _ = LoadNiiData(dwi_path, dtype=np.float32) _, adc, _ = LoadNiiData(adc_path, dtype=np.float32) _, roi, _ = LoadNiiData(roi_path, dtype=np.uint8) t2 = np.transpose(t2, [1, 2, 0]) dwi = np.transpose(dwi, [1, 2, 0]) adc = np.transpose(adc, [1, 2, 0]) _, _, new_roi = KeepLargest(roi) new_roi = np.transpose(new_roi, [1, 2, 0]) Imshow3DArray(Normalize01(t2), roi=Normalize01(new_roi)) Imshow3DArray(Normalize01(dwi), roi=Normalize01(new_roi)) Imshow3DArray(Normalize01(adc), roi=Normalize01(new_roi))
def check_resample_result(self): """检查重采样的结果""" resample_result = os.path.join(self.case_path, "pet_Resize.nii") pet_array = get_array_from_path(resample_result) sum_array = np.sum(pet_array) pet_array = standard(pet_array) roi_path = os.path.join(self.case_path, "no_name.nii") roi_array = get_array_from_path(roi_path) pet_array = np.flipud(pet_array) Imshow3DArray(pet_array, roi_array) print(sum_array)
def get_roi(self): for group in self.normal_and_instability: for case in os.listdir(os.path.join(self.root_path, group)): data_path = os.path.join(self.root_path, group, case, "data.nii") data_array = standard(get_array_from_path(data_path)) data = sitk.ReadImage(data_path) big_roi = 0 for i in range(1, 9): roi_path = os.path.join(self.root_path, group, case, "roi_" + str(i) + ".nii") roi_array = get_array_from_path(roi_path) big_roi += roi_array Imshow3DArray(data_array, big_roi)
def show_T2_and_ROI(self): T2_path = os.path.join(self.case_path, "T2.nii") roi_list = [ "xia_gu_down_1.nii", "xia_gu_down_2.nii", "xia_gu_up_1.nii", "xia_gu_up_2.nii" ] T2_array = standard(get_array_from_path(T2_path)) T2_array = cv2.blur(T2_array, (5, 5)) for roi in roi_list: roi_path = os.path.join(self.case_path, roi) roi_array = get_array_from_path(roi_path) Imshow3DArray(T2_array, roi_array)
def TestMergePzAndTz(): merge_path = r'Z:\StoreFormatData\PzTzSegment_ZYH\ZYHDraw\2019-CA-formal-BAO TONG\merge_pz1_cg2.nii' t2_path = r'Z:\StoreFormatData\PzTzSegment_ZYH\ZYHDraw\2019-CA-formal-BAO TONG\t2.nii' pz_path = r'Z:\StoreFormatData\PzTzSegment_ZYH\ZYHDraw\2019-CA-formal-BAO TONG\pz.nii' from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 _, _, t2 = LoadNiiData(t2_path) _, _, pz = LoadNiiData(pz_path) _, _, merge_roi = LoadNiiData(merge_path, dtype=np.uint8) Imshow3DArray( np.concatenate((Normalize01(pz), Normalize01(merge_roi)), axis=1))
def TestResampleData(): merge_path = r'D:\ProblemData\StoreFormatData\CAI NING_0007947872\MergeRoi_Resize_05x05.nii' t2_path = r'D:\ProblemData\StoreFormatData\CAI NING_0007947872\t2_Resize_05x05.nii' from MeDIT.Visualization import Imshow3DArray from MeDIT.Normalize import Normalize01 _, _, t2 = LoadNiiData(t2_path, is_show_info=True) _, _, merge_roi = LoadNiiData(merge_path, dtype=np.uint8, is_show_info=True) Imshow3DArray( np.concatenate((Normalize01(t2), Normalize01(merge_roi)), axis=1))
def check_roi(): """检查之前ROI中的数值""" case_path = r"Y:\DYB\data_and_result\doctor_xie\knee_data\CAI NAI JI-20140605" data_path = os.path.join(case_path, "data_1.nii") roi_path = os.path.join(case_path, "roi.nii.gz") data_array = standard(get_array_from_path(data_path)) data_array = np.flipud(data_array) roi_array = get_array_from_path(roi_path) roi_1 = np.where(roi_array == 1, 1, 0) # 上软骨后面的层 roi_2 = np.where(roi_array==2, 1, 0) # 上软骨前面的层 roi_3 = np.where(roi_array==3, 1, 0) # 下软骨后面的层 roi_4 = np.where(roi_array==4, 1, 0) roi_5 = np.where(roi_array==5, 1, 0) roi_6 = np.where(roi_array==6, 1, 0) Imshow3DArray(standard(data_array), [roi_1, roi_2, roi_3, roi_4])