Example #1
0
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))
Example #2
0
    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
Example #3
0
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')
Example #4
0
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))
Example #5
0
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])
Example #8
0
 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)
Example #9
0
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)
Example #10
0
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])
Example #11
0
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)
Example #12
0
    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()
Example #13
0
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])
Example #14
0
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)
Example #15
0
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)
Example #16
0
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)
Example #17
0
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)
Example #18
0
 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)
Example #19
0
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())
Example #20
0
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))
Example #21
0
    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)
Example #22
0
 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])
Example #23
0
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)
Example #24
0
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))
Example #25
0
    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)
Example #26
0
    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)
Example #27
0
    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))
Example #30
0
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])