Добро пожаловать в этот туториал по арифметическим операциям с изображениями с использованием OpenCV-Python! В этом туториале мы рассмотрим операции сложения, вычитания и побитовых операций. В конце этого туториала вы глубоко поймете, как манипулировать изображениями с использованием этих базовых операций.
Skills Graph
%%%%{init: {'theme':'neutral'}}%%%%
flowchart RL
opencv(("OpenCV")) -.-> opencv/BasicOperationsGroup(["Basic Operations"])
opencv/BasicOperationsGroup -.-> opencv/add("Image Addition")
opencv/BasicOperationsGroup -.-> opencv/add_weighted("Image Blending")
opencv/BasicOperationsGroup -.-> opencv/bitwise_and("Bitwise AND")
opencv/BasicOperationsGroup -.-> opencv/bitwise_not("Bitwise NOT")
opencv/BasicOperationsGroup -.-> opencv/bitwise_or("Bitwise OR")
opencv/BasicOperationsGroup -.-> opencv/bitwise_xor("Bitwise XOR")
opencv/BasicOperationsGroup -.-> opencv/imread("Image Read")
opencv/BasicOperationsGroup -.-> opencv/imwrite("Image Write")
opencv/BasicOperationsGroup -.-> opencv/subtract("Image Subtraction")
subgraph Lab Skills
opencv/add -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/add_weighted -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/bitwise_and -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/bitwise_not -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/bitwise_or -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/bitwise_xor -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/imread -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/imwrite -.-> lab-38502{{"Арифметические операции с изображениями"}}
opencv/subtract -.-> lab-38502{{"Арифметические операции с изображениями"}}
end
Сложение изображений
Сложение изображений - это процесс добавления значений пикселей к двум изображениям. В OpenCV для этого используется функция cv2.add().
Откройте Python-интерпретатор
Откройте Python-интерпретатор в терминале
python3
Загрузите два изображения
Используйте .imread, чтобы прочитать целевые изображения.
import cv2 as cv2
img1 = cv2.imread('image1.jpg')
img2 = cv2.imread('image2.jpg')
Сложите изображения
Используйте .add(), чтобы сложить два изображения, прочитанные на предыдущем шаге.
result = cv2.add(img1, img2)
Сохраните результат
Запишите результат.
cv2.imwrite('Image_Addition.jpg', result)
Пример
Полученное изображение Image_Addition.jpg выглядит так:
Смешивание изображений
Это также сложение изображений, но изображениям назначаются разные веса, чтобы создать ощущение смешивания или прозрачности. Изображения добавляются по следующей формуле:
cv.addWeighted() применяет эту формулу к изображению.
Добавьте изображения
Используйте .addWeighted(), чтобы применить формулу к изображениям, прочитанным на предыдущем шаге.
result = cv2.addWeighted(img1,0.7,img2,0.3,0)
Сохраните результат
Запишите результат.
cv2.imwrite('Image_Blending.jpg', result)
Пример
Полученное изображение Image_Blending.jpg выглядит так:
Вычитание изображений
Вычитание изображений используется для нахождения разницы между двумя изображениями. Он вычитает значения пикселей одного изображения из другого. В OpenCV вы можете использовать функцию cv2.subtract().
Вычтите изображения
Используйте .subtract(), чтобы вычесть значения пикселей изображения img1 из изображения img2.
result = cv2.subtract(img1, img2)
Сохраните результат
Запишите результат.
cv2.imwrite('Image_Subtraction.jpg', result)
Пример
Полученное изображение Image_Subtraction.jpg выглядит так:
Побитовые операции
Побитовые операции используются для манипуляции отдельными битами значений пикселей. OpenCV предоставляет функции, такие как cv2.bitwise_and(), cv2.bitwise_or(), cv2.bitwise_xor() и cv2.bitwise_not(), для выполнения побитовых операций.
Посмотрим пример каждой операции:
Побитовое И
Используйте .bitwise_and(), чтобы вычислить побитовое И бит значений пикселей в двух изображениях.
bitwise_and = cv2.bitwise_and(img1, img2)
Побитовое ИЛИ
Используйте .bitwise_or(), чтобы вычислить побитовое ИЛИ бит значений пикселей в двух изображениях.
bitwise_or = cv2.bitwise_or(img1, img2)
Побитовое исключающее ИЛИ
Используйте .bitwise_xor(), чтобы вычислить побитовое исключающее ИЛИ бит значений пикселей в двух изображениях.
bitwise_xor = cv2.bitwise_xor(img1, img2)
Побитовое НЕ
Используйте .bitwise_not(), чтобы вычислить побитовое НЕ бит значений пикселей в двух изображениях.
Поздравляем! Теперь вы узнали, как выполнять арифметические операции над изображениями с использованием OpenCV-Python. Вы изучили сложение, вычитание и побитовые операции с изображениями. Эти базовые операции могут быть очень полезными для задач обработки изображений, таких как смешивание изображений, обнаружение изменений и маскирование определенных областей изображения.
Продолжайте практиковаться и экспериментировать с разными изображениями, чтобы лучше понять, как работают эти операции. Удачи и приятной работы!
We use cookies for a number of reasons, such as keeping the website reliable and secure, to improve your experience on our website and to see how you interact with it. By accepting, you agree to our use of such cookies. Privacy Policy