Как хранить изображения внутри папки в python - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь сохранить изображения на основе сравнения. Если результат сравнения меньше 0,01, он должен находиться в той же папке, если не нужно создавать новый каталог и в нем должен находиться образ, если значение не меньше 0,01, он не создает папку, в которой изображение должно быть сохранено.

здесь я проверяю его

        d2 = cv2.matchShapes(img_1,img_2,cv2.CONTOURS_MATCH_I2,1)
        if d2 <= 0.01:

, в этом случае каждое изображение сравнивается со вторым изображением, второе изображение сравнивается с третьим и скоро. Если d2 больше 0,01, следует создать новый каталог, и изображение будет сохранено в этой категории, чего сейчас не происходит.

Буду признателен за любую помощь

это код

visited_images = []
similarity_dict = {}
count = 0
for image_1_path in os.listdir("noise"):
    img_1 = cv2.imread(os.path.join("noise", image_1_path),cv2.IMREAD_GRAYSCALE)
    visited_images.append(image_1_path)
    for image_2_path in os.listdir("noise"):
        if image_2_path in visited_images:
            continue
        img_2 = cv2.imread(os.path.join("noise", image_2_path),cv2.IMREAD_GRAYSCALE)
        d2 = cv2.matchShapes(img_1,img_2,cv2.CONTOURS_MATCH_I2,1)
        if d2 <= 0.01:
            visited_images.append(image_2_path)
            if image_1_path not in similarity_dict.keys():
                count += 1
                similarity_dict[image_1_path] = [image_2_path]
                os.mkdir(os.path.join("sorted-characters", str(count)))
                cv2.imwrite(os.path.join("sorted-characters", str(count), image_1_path),img_1)
                cv2.imwrite(os.path.join("sorted-characters",  str(count), image_2_path),img_2)
                continue
            similarity_dict[image_1_path].append(image_2_path)
            cv2.imwrite(os.path.join("sorted-characters", str(count), image_1_path),img_1)
            cv2.imwrite(os.path.join("sorted-characters",  str(count), image_2_path),img_2)
    print(visited_images)

, когда я распечатываю посещенные изображения, он показывает все изображения в этом списке, что означает, что он посещает все изображения в папке шумов

это вывод папки шумов

['1.png']
['1.png', '2.png']
['1.png', '2.png', '3.png', 'Img_219.png']
['1.png', '2.png', '3.png', 'Img_219.png', 'Img_219.png']
...