示例#1
0
def calc_dataset_size(train_path, test_path):
    train_filenames = get_filenames(train_path, 'jpg')
    test_filenames = get_filenames(test_path, 'jpg')
    random.shuffle(train_filenames)
    random.shuffle(test_filenames)
    dataset_size = len(train_filenames)
    return train_filenames, test_filenames, dataset_size
示例#2
0
def normalize_imgs(imgs_arr, usr_imgs_path):
    usr_img_paths = get_filenames(usr_imgs_path, 'dcm')
    num_img_ls = []
    for usr_img_path in usr_img_paths:
        num_img = int(usr_img_path.split('/')[-1][:-4])
        num_img_ls.append(num_img)
    num_img_ls.sort()
    # print(num_img_ls)

    dist = len(num_img_ls) / imgs_arr.shape[0]
    dataset_img_paths = []
    for i in range(imgs_arr.shape[0]):
        num_img_path = '{}/{}.dcm'.format(usr_imgs_path,
                                          num_img_ls[int(i * dist)])
        dataset_img_paths.append(num_img_path)

    print(dataset_img_paths)

    for i, dataset_img_path in enumerate(dataset_img_paths):
        ct_dcm = pydicom.dcmread(dataset_img_path)
        # print(ct_dcm.pixel_array)
        num_mag = int(ct_dcm.pixel_array.shape[1] / imgs_arr.shape[2])
        ct_img = ct_dcm.pixel_array[::num_mag, ::num_mag] / 65535
        imgs_arr[i] = ct_img

    return imgs_arr
def get_dataset_paths(usr_imgs_path, NUM_DIVIDED=20):
    usr_img_paths = get_filenames(usr_imgs_path, 'dcm')
    num_img_list = []
    for usr_img_path in usr_img_paths:
        num_img = int(usr_img_path.split('/')[-1][:-4])
        num_img_list.append(num_img)
    num_img_list.sort()
    # print(num_img_list)

    dist = len(num_img_list) / NUM_DIVIDED
    dataset_img_paths = []
    for i in range(NUM_DIVIDED):
        num_img_path = '{}/{}.dcm'.format(usr_imgs_path,
                                          num_img_list[int(i * dist)])
        dataset_img_paths.append(num_img_path)

    return dataset_img_paths
示例#4
0
def normalize_imgs(imgs_arr, user_imgs_path):
    user_img_paths = get_filenames(user_imgs_path, 'dcm')
    num_img_list = []
    for user_img_path in user_img_paths:
        num_img = int(user_img_path.split('/')[-1][:-4])
        num_img_list.append(num_img)
    num_img_list.sort()
    # print(num_img_list)

    dist = len(num_img_list) / imgs_arr.shape[0]
    dataset_img_paths = []
    for i in range(imgs_arr.shape[0]):
        num_img_path = '{}/{}.dcm'.format(user_imgs_path,
                                          num_img_list[int(i * dist)])
        dataset_img_paths.append(num_img_path)
    # print(dataset_img_paths)

    for i, dataset_img_path in enumerate(dataset_img_paths):
        ct_dcm = pydicom.dcmread(dataset_img_path)
        ct_img = transform_ctdata(ct_dcm, windowWidth=-1500, windowCenter=-600)
        # print(ct_dcm.pixel_array)

        j = i
        if np.average(ct_img) < 25 or np.average(ct_img) > 200 or (
                np.average(ct_img) == ct_img[:, :]).all():
            print('pass')
            j += 1
            ct_dcm = pydicom.dcmread(dataset_img_paths[j])
            ct_img = transform_ctdata(ct_dcm, -1500, -600)

        lung_img = get_lung_img(ct_img.copy(), isShow=False)
        output_img = get_square_img(lung_img)

        output_img = cv2.resize(output_img,
                                (imgs_arr.shape[1], imgs_arr.shape[2]))
        imgs_arr[i] = output_img
    return imgs_arr
示例#5
0
        return


def cv2_winClose():
    '''
    Press "q" to close all cv2 windows
    '''
    cv2.waitKey(0)
    if cv2.waitKey(1) & 0xFF == ord('q'):  # 按q键退出
        return


if __name__ == "__main__":
    path = "Data/train_images/hog_data"
    file_extension = "jpg"
    filenames = get_filenames(path, file_extension)

    steel = Hog_Param()

    # positive data
    for i in range(len(filenames)):
        img = cv2.imread(filenames[i])
        cv2.imshow('a', img)
        cv2_winClose()
        img = cv2.resize((128, 64))
        hist = steel.hog.compute(img, (8, 8))
        for j in range(steel.featureNum):
            steel.featureArray[i, j] = hist[j]

        steel.labelArray[i, 0] = 1