⚡️📸 Как сравнить картинки питон? 5 простых шагов для сравнения изображений

Для сравнения картинок на Python можно использовать библиотеку OpenCV. Вот пример кода:


import cv2

image1 = cv2.imread('путь_к_первой_картинке.jpg')
image2 = cv2.imread('путь_к_второй_картинке.jpg')

difference = cv2.subtract(image1, image2)
result = not cv2.countNonZero(difference)

if result:
    print("Картинки идентичны")
else:
    print("Картинки различаются")
    

В этом примере мы загружаем две картинки с помощью функции cv2.imread и вычитаем одну из другой с помощью cv2.subtract. Затем мы проверяем количество ненулевых пикселей разности. Если их нет, значит картинки идентичны, иначе они различаются.

Детальный ответ

Как сравнить картинки питон

Сравнение картинок в Python может быть полезным во многих сценариях, от обработки изображений до компьютерного зрения. В этой статье мы рассмотрим несколько подходов к сравнению картинок с использованием языка программирования Python.

1. Сравнение сумм пикселей

Простой способ сравнения картинок - это сравнение суммы пикселей. Мы можем просто пройти по каждому пикселю изображений и сложить значения пикселей в каждом канале цвета. Затем мы сравниваем полученные суммы и определяем, насколько похожи изображения.


import cv2

def compare_images(image1, image2):
    img1 = cv2.imread(image1)
    img2 = cv2.imread(image2)

    sum1 = img1.sum()
    sum2 = img2.sum()

    if sum1 == sum2:
        return "Изображения идентичны"
    else:
        return "Изображения различаются"

result = compare_images("image1.jpg", "image2.jpg")
print(result)

2. Сравнение гистограмм

Сравнение гистограмм - это более сложный способ сравнения изображений. Гистограмма представляет распределение интенсивности пикселей в изображении. Мы можем сравнивать гистограммы двух изображений, чтобы определить, насколько они похожи.


import cv2

def compare_histograms(image1, image2):
    img1 = cv2.imread(image1)
    img2 = cv2.imread(image2)

    hist1 = cv2.calcHist([img1], [0], None, [256], [0, 256])
    hist2 = cv2.calcHist([img2], [0], None, [256], [0, 256])

    similarity = cv2.compareHist(hist1, hist2, cv2.HISTCMP_CORREL)
    if similarity >= 0.95:
        return "Изображения сильно похожи"
    elif similarity >= 0.5:
        return "Изображения немного похожи"
    else:
        return "Изображения различаются"

result = compare_histograms("image1.jpg", "image2.jpg")
print(result)

3. Сравнение структуры

Сравнение структуры изображений - это еще один метод сравнения изображений. Он учитывает не только цвета, но и расположение объектов на изображении.


import cv2

def compare_structure(image1, image2):
    img1 = cv2.imread(image1)
    img2 = cv2.imread(image2)

    sift = cv2.SIFT_create()

    keypoints1, descriptors1 = sift.detectAndCompute(img1, None)
    keypoints2, descriptors2 = sift.detectAndCompute(img2, None)

    bf = cv2.BFMatcher()
    matches = bf.knnMatch(descriptors1, descriptors2, k=2)

    similarity = 0
    for m, n in matches:
        if m.distance < 0.75 * n.distance:
            similarity += 1

    if similarity >= 10:
        return "Изображения схожи"
    else:
        return "Изображения различаются"

result = compare_structure("image1.jpg", "image2.jpg")
print(result)

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

Не забывайте, что сравнение картинок не всегда является точной наукой, и результаты могут быть субъективными. Также помните, что эти методы сравнения могут быть дорогостоящими по вычислительным ресурсам для больших изображений.

Надеюсь, эта статья помогла вам понять, как можно сравнить картинки с помощью Python.

Видео по теме

Cравнениe изоражений с Python + Pillow

Распознавание объектов на Python | Поиск объектов на изображении | TensorFlow, PixelLib

Работа с изображениями на python (питон) модуль PIL (pillow)

Похожие статьи:

Что означает команда count в Python? 🧐🐍

🔍 Как определить класс в питоне: простой и понятный гайд

🔍 Как пишут вирусы хакеры на Python: популярные методы и техники

⚡️📸 Как сравнить картинки питон? 5 простых шагов для сравнения изображений

Что означает import as в Python: основное понятие и использование

Методы Python 3: что это такое и как использовать? 🐍

⌨️ Как правильно написать ввод в питоне: пошаговое руководство для начинающих