Esempio n. 1
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)
Esempio n. 2
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)
Esempio n. 3
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])
Esempio n. 4
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])
Esempio n. 5
0
 def get_data_array(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 = get_array_from_path(data_path)
             data_array = standard(data_array)
             return data_array
Esempio n. 6
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)
Esempio n. 7
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)
Esempio n. 8
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
Esempio n. 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)
Esempio n. 10
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)
Esempio n. 11
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)
Esempio n. 12
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)
Esempio n. 13
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)
Esempio n. 14
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)
Esempio n. 15
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)
Esempio n. 16
0
def show_resample_image():
    data_path = r"Y:\DYB\PETCT_EGFR\EGFR-\001-\pet_Resize.nii"
    roi_path = r"Y:\DYB\PETCT_EGFR\EGFR-\001-\no_name.nii"
    roi_array = get_array_from_path(roi_path)

    data_array = get_array_from_path(data_path)
    data_array = np.flipud(data_array)
    ct_path = r"Y:\DYB\PETCT_EGFR\EGFR-\001-\ct.nii"
    ct_array = get_array_from_path(ct_path)
    ct_pet_array = ct_array + data_array
    ct_pet_array = standard(ct_pet_array)
    ct_pet_array = np.flipud(ct_pet_array)
    ct_array = np.flipud(ct_array)
    # Imshow3DArray(standard(ct_array), roi_array)
    Imshow3DArray(ct_pet_array, roi_array)
Esempio n. 17
0
    def get_3D_array(self):
        # T_2_array = []
        # file_list = self.sort_file(self.store_folder_path)
        # for file in 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[0, ...])
        #     plt.imshow(image_2D_array[0, ...])
        #     plt.show()

        # T_2_array = np.array(T_2_array)
        # T_2_array = np.transpose(T_2_array, (1, 2, 0))
        # print(T_2_array.shape)
        data_path = r"Y:\DYB\2020832DATA\doctor_xie\normal_control\case0\nii_folder\T2MAPPING_anatomical_LEFT_e1.nii"
        data_array = get_array_from_path(data_path)
        data_array = np.flipud(data_array)

        Imshow3DArray(standard(data_array))
Esempio n. 18
0
def check_data_roi():
    """检查数据和ROI"""
    root_path = r"Y:\DYB\data_and_result\doctor_xie\knee_data"
    store_path = r"Y:\DYB\data_and_result\doctor_xie\knn_segment_all_roi"
    for case in os.listdir(root_path):
        case_path = os.path.join(root_path, case)
        store_case_path = make_folder(os.path.join(store_path, case))
        # 选择分割的数据是的一个回波的数据
        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_array_list = [
            np.where(roi_array == i, 1, 0) for i in np.unique(roi_array)[1:]
        ]

        np.save(os.path.join(store_case_path, "data.npy"), data_array)
        np.save(os.path.join(store_case_path, "all_roi.npy"), roi_array_list)
        print(case, " is finished!")
Esempio n. 19
0
def get_croped_data_roi(data_path, roi_path, store_path):
    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))

    # Imshow3DArray(standard(new_array), roi_new)

    np.save(os.path.join(store_path, "croped_pet.npy"), new_array)
    np.save(os.path.join(store_path, "croped_roi.npy"), roi_new)
Esempio n. 20
0
    def get_ROI(self, value, store_name):  # value用来选择
        ruangu_roi = os.path.join(self.case_path, "roi.nii.gz")  # 软骨路径
        xiagu_roi = os.path.join(self.case_path,
                                 "moved_new_roi.nii.gz")  # 下骨路径

        data_path = os.path.join(self.case_path, "data_1.nii")
        data_array = standard(np.flipud(get_array_from_path(data_path)))
        data = sitk.ReadImage(data_path)

        ruangu_roi_array = get_array_from_path(ruangu_roi)
        single_ruangu_array = np.where(ruangu_roi_array == value, 1, 0)  # 软骨

        xiagu_roi_array = get_array_from_path(xiagu_roi)
        single_xiagu_array = np.where(xiagu_roi_array == value, 1, 0)  # 下骨

        # 显示检查
        # Imshow3DArray(data_array, [single_ruangu_array, single_xiagu_array])
        SaveArrayToNiiByRef(
            os.path.join(self.case_path, "ruan_gu_" + store_name + ".nii"),
            single_ruangu_array, data)
        SaveArrayToNiiByRef(
            os.path.join(self.case_path, "xia_gu_" + store_name + ".nii"),
            single_xiagu_array, data)
Esempio n. 21
0
 def show_roi(self):
     """检查数据展示几个ROI"""
     ct_array = standard(self.pet_array)
     Imshow3DArray(ct_array, self.roi_array)
Esempio n. 22
0
import os
from MeDIT.Visualization import Imshow3DArray
from Tool.DataProcress import get_array_from_path, standard
import numpy as np

data = get_array_from_path(
    r"Y:\DYB\data_and_result\doctor_xie\knee_data\CAI NAI JI-20140605\data_1.nii"
)
data = standard(data)
data = np.flipud(data)
roi = get_array_from_path(
    r"Y:\DYB\data_and_result\doctor_xie\knee_data\CAI NAI JI-20140605\xia_gu_down_2.nii"
)
roi_2 = get_array_from_path(
    r"Y:\DYB\data_and_result\doctor_xie\knee_data\CAI NAI JI-20140605\ruan_gu_down_2.nii"
)
Imshow3DArray(data, [roi, roi_2])
Imshow3DArray(data, roi_2)
Imshow3DArray(data, roi)