Exemple #1
0
def NiiImageInfoStatistic(root_folder, key_word):
    case_list = os.listdir(root_folder)
    case_list.sort()

    shape_list = []
    spacing_list = []

    for case in case_list:
        case_folder = os.path.join(root_folder, case)
        candidate_file = glob.glob(os.path.join(case_folder, key_word))
        if len(candidate_file) != 1:
            print('Not unique file: ', case)
            continue

        image, _, data = LoadNiiData(candidate_file[0])

        shape_list.append(image.GetSize())
        spacing_list.append(image.GetSpacing())

    shape_info = np.array(shape_list)
    spacing_info = np.array(spacing_list)

    print('The number of cases is :', len(shape_list))
    print('The mean of the size is :', np.mean(shape_info, axis=0))
    print('The max of the size is :', np.max(shape_info, axis=0))
    print('The min of the size is :', np.min(shape_info, axis=0))
    print('The mean of the spacing is :', np.mean(spacing_info, axis=0))
    print('The max of the spacing is :', np.max(spacing_info, axis=0))
    print('The min of the spacing is :', np.min(spacing_info, axis=0))

    import matplotlib.pyplot as plt
    fig = plt.figure(0, [15, 5])
    ax1 = fig.add_subplot(131)
    ax1.hist(spacing_info[:, 0], bins=50)
    ax1.set_xlabel('Resolution')
    ax1.set_ylabel('Spacing/mm')
    ax1.set_title('Histogram of x-axis spacing')
    ax2 = fig.add_subplot(132)
    ax2.hist(spacing_info[:, 1], bins=50)
    ax2.set_xlabel('Resolution')
    ax2.set_ylabel('Spacing/mm')
    ax2.set_title('Histogram of y-axis spacing')
    ax3 = fig.add_subplot(133)
    ax3.hist(spacing_info[:, 2], bins=50)
    ax3.set_xlabel('Resolution')
    ax3.set_ylabel('Spacing/mm')
    ax3.set_title('Histogram of z-axis spacing')
    plt.show()
Exemple #2
0
    if os.path.exists(os.path.join(case_path, 'adc.nii')):
        if os.path.exists(os.path.join(case_path, 'dwi.nii')):
            bval_path = os.path.join(case_path, 'dwi.bval')
            bval = open(bval_path, 'r')
            b_list = bval.read().split()
            if len(b_list) == 1:
                new_img, new_dwi, _ = LoadNiiData(os.path.join(case_path, 'dwi.nii'))

            else:
                b, index = NearTrueB(b_list)
                _, dwi, _ = LoadNiiData(os.path.join(case_path, 'dwi.nii'))
                img, _, _ = LoadNiiData(os.path.join(case_path, 'adc.nii'))
                new_dwi = dwi[index, ...]
                new_img = sitk.GetImageFromArray(new_dwi)
                new_img.SetDirection(img.GetDirection())
                new_img.SetSpacing(img.GetSpacing())
                new_img.SetOrigin(img.GetOrigin())

        elif os.path.exists(os.path.join(case_path, 'dki.nii')):
            bval_path = os.path.join(case_path, 'dki.bval')
            bval = open(bval_path, 'r')
            b_list = bval.read().split()
            if len(b_list) == 1:
                new_img, new_dwi, _ = LoadNiiData(os.path.join(case_path, 'dki.nii'))
            else:
                b, index = NearTrueB(b_list)
                img, dki, _ = LoadNiiData(os.path.join(case_path, 'dki.nii'))
                img, _, _ = LoadNiiData(os.path.join(case_path, 'adc.nii'))
                new_dwi = dki[index, ...]
                new_img = sitk.GetImageFromArray(new_dwi)
                new_img.SetDirection(img.GetDirection())