コード例 #1
0
def generate_contrast_plus_test(path, base_path):
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    image_path_set = os.listdir(path)
    for label in image_path_set:
        image_name_set = os.listdir(osp.join(path, label))
        num = random.randint(400, 700)
        image_name1 = image_name_set[0]
        temp_label_set = list(image_name_set)
        temp_label_set.remove(image_name1)
        for i in range(num):
            image_name2 = temp_label_set[random.randint(
                0,
                len(temp_label_set) - 1)]
            index_1 = dict_index.get(image_name1)
            index_2 = dict_index.get(image_name2)
            print('index_1: ' + str(index_1) + ', index_2: ' + str(index_2))
            if index_1 is None or index_2 is None:
                continue
            x_1, f_1 = load.get_pixel_by_index(index_1, pf)
            x_2, f_2 = load.get_pixel_by_index(index_2, pf)
            pre1 = image_name1.replace('.png', '')
            pre2 = image_name2.replace('.png', '')
            save_path = osp.join(base_path,
                                 pre1 + '~' + pre2 + '~' + str(i) + 'tp.png')
            generate_origin.process_contrast(x_1, f_1, x_2, f_2, save_path)
コード例 #2
0
def generate_contrast_plus_train(img_path, base_path):
    image_path_set = os.listdir(img_path)
    print(img_path + ' has ' + str(len(image_path_set)) + ' labels ')
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    for label in image_path_set:
        image_name_set = os.listdir(osp.join(img_path, label))
        label_num = len(image_name_set)
        # choose first image as standard image todo standard image is not static
        standard_image = image_name_set[0]
        print(label + ' has ' + str(label_num) +
              ' images, standard image is ' + standard_image)
        index_standard = dict_index.get(standard_image)
        temp_image_set = list(image_name_set)
        temp_image_set.remove(standard_image)
        for image_name in temp_image_set:
            index_image = dict_index.get(image_name)
            print('index_1: ' + str(index_standard) + ', index_2: ' +
                  str(index_image))
            if index_standard is None or index_image is None:
                continue
            print(label + ': generate ' + image_name + ' with ' +
                  standard_image)
            x_1, f_1 = load.get_pixel_by_index(index_standard, pf)
            x_2, f_2 = load.get_pixel_by_index(index_image, pf)
            pre = image_name.replace('.png', '')
            save_path = osp.join(base_path, pre + 'tp.png')
            generate_origin.process_contrast(x_1, f_1, x_2, f_2, save_path)
コード例 #3
0
def generate_contrast_minus_train(img_path, base_path):
    image_path_set = os.listdir(img_path)
    label_cnt = len(image_path_set)
    print(img_path + ' has ' + str(label_cnt) + ' labels ')
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    for label in image_path_set:
        temp_label_set = list(image_path_set)
        temp_label_set.remove(label)
        image_name_set = os.listdir(osp.join(img_path, label))
        for image_name in image_name_set:
            minus_label = temp_label_set[random.randint(
                0,
                len(temp_label_set) - 1)]
            minus_name_set = os.listdir(img_path + '\\' + minus_label)
            minus_name = minus_name_set[random.randint(0,
                                                       len(minus_name_set) -
                                                       1)]
            index_1 = dict_index.get(image_name)
            index_2 = dict_index.get(minus_name)
            print('index_1: ' + str(index_1) + ', index_2: ' + str(index_2))
            if index_1 is None or index_2 is None:
                continue
            print(label + ': generate ' + image_name + ' with ' + minus_name)
            x_1, f_1 = load.get_pixel_by_index(index_1, pf)
            x_2, f_2 = load.get_pixel_by_index(index_2, pf)
            pre = image_name.replace('.png', '')
            save_path = osp.join(base_path, pre + 'tm.png')
            generate_origin.process_contrast(x_1, f_1, x_2, f_2, save_path)
コード例 #4
0
def draw_in_one(temp, pf, save_path):
    img = 255 * np.ones((256, 256, 3), np.uint8)
    for index in temp:
        x, f = load.get_pixel_by_index(index, pf)
        generate_origin.draw_line(img, x, f, (255, 0, 0))
        # print(index)
    img2 = cv.flip(img, 0, dst=None)
    cv.imwrite(save_path, img2)
コード例 #5
0
def generate_single_contrast_by_name(image_name1, image_name2, base_path):
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    # file = open('D:\\graduationproject\\ver3\\similarity\\cbir\\error.txt')
    # for line in file:
    #     content = line.split(' ')
    #     image_name1 = content[0]
    #     image_name2 = content[1]
    #     label = content[2].replace('\n', '')
    index_1 = dict_index.get(image_name1)
    index_2 = dict_index.get(image_name2)
    print(str(index_1) + ';' + str(index_2))
    # if index_1 is None or index_2 is None:
    #     continue
    x_1, f_1 = load.get_pixel_by_index(index_1, pf)
    x_2, f_2 = load.get_pixel_by_index(index_2, pf)
    save_path = osp.join(base_path, image_name1 + '~' + image_name2 + '.png')
    generate_origin.process_contrast(x_2, f_2, x_1, f_1, save_path)
コード例 #6
0
def generate_contrast_minus_test(image_name, path, base_path):
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    image_path_set = os.listdir(path)
    num = random.randint(800, 1000)
    for i in range(num):
        minus_label = image_path_set[random.randint(0,
                                                    len(image_path_set) - 1)]
        minus_name_set = os.listdir(osp.join(path, minus_label))
        minus_name = minus_name_set[random.randint(0, len(minus_name_set) - 1)]
        index_1 = dict_index.get(image_name)
        index_2 = dict_index.get(minus_name)
        print('index_1: ' + str(index_1) + ', index_2: ' + str(index_2))
        if index_1 is None or index_2 is None:
            continue
        x_1, f_1 = load.get_pixel_by_index(index_1, pf)
        x_2, f_2 = load.get_pixel_by_index(index_2, pf)
        pre1 = image_name.replace('.png', '')
        pre2 = minus_name.replace('.png', '')
        save_path = osp.join(base_path,
                             pre1 + '~' + pre2 + '~' + str(i) + 'tm.png')
        generate_origin.process_contrast(x_1, f_1, x_2, f_2, save_path)
コード例 #7
0
def generate_triplet_origin_image(save_path, source_path):
    loadfile = load.LoadData('D:\\pythonProject\\image_data_map.csv')
    pf, dict_index = loadfile.get_pixel_data()
    image_path_set = os.listdir(source_path)
    image_set = set()
    for image in image_path_set:
        temp = image.split('~')
        image_set.add(temp[0] + '.png')
        image_set.add(temp[1] + '.png')
    print('origin image num: ' + str(len(image_set)))
    for image_name in image_set:
        index = dict_index.get(image_name)
        if index is None:
            continue
        x, f = load.get_pixel_by_index(index, pf)
        generate_origin.process(x, f, osp.join(save_path, image_name))
        print('origin image: ' + image_name)
コード例 #8
0
def data_augmentation_from_map(image_name_set, dict_index, pf, path):
    # order of magnitude
    label_num = len(image_name_set)
    num = int((4500 + random.randint(-700, 800)) / label_num)
    # get data source
    for image_name in image_name_set:
        index_image = dict_index.get(image_name)
        if index_image is None:
            continue
        x, f = load.get_pixel_by_index(index_image, pf)
        pre = image_name.replace('.png', '')
        for k in range(num):
            length = len(f)
            f_add = np.empty([length, 1], dtype=int)
            for i in range(length):
                temp = int(f[i] + random.randint(0, 3))
                f_add[i] = temp if random.randint(
                    0, 1) <= 0.45 and temp <= max(f) else f[i]
            add_path = osp.join(path, pre + '-' + str(k) + '.png')
            process(x, f_add, add_path)