Добавление или смешивание двух изображений с использованием OpenCV в Python

Вы можете добавить или смешать два изображения, используя opencv с помощью метода cv2.addWeighted().

Синтаксис

Ниже приводится синтаксис функции addWeighted().

dst = cv.addWeighted(src1, alpha, src2, beta, gamma[, dst[, dtype]])

Где, src1 и src2 – входные массивы изображений, а alpha, beta – соответствующие веса, которые следует учитывать при выполнении взвешенного сложения, gamma – это статический вес, который будет добавлен ко всем пикселям изображения.

Функция возвращает массив numpy, содержащий значения пикселей результирующего изображения.

На уровне пикселей addWeighted() выполняет следующую операцию.

dst = scr1*alpha + scr2*beta + gamma

Пример 1

В следующем примере мы возьмем два изображения и сложим их вместе с альфа и бета 0,5.

import cv2

# read two images
src1 = cv2.imread('image1.png', cv2.IMREAD_COLOR)
src2 = cv2.imread('image2.png', cv2.IMREAD_COLOR)

# add or blend the images
dst = cv2.addWeighted(src1, 0.5, src2, 0.5, 0.0)

# save the output image
cv2.imwrite('image.png', dst)

Сложение двух изображений

Смешивание двух изображений

Полученный результат

Поскольку мы присвоили каждому изображению вес 0,5, выходные изображения выглядят тусклыми или затемненными. В следующем примере мы попробуем с разными весами.

Пример 2: смешивание с разным весом

В этом примере мы будем использовать те же входные изображения, что и в предыдущем примере, но с другим весом альфа = 1 и бета = 1.

import cv2

# read two images
src1 = cv2.imread('image1.png', cv2.IMREAD_COLOR)
src2 = cv2.imread('image2.png', cv2.IMREAD_COLOR)

# add or blend the images
dst = cv2.addWeighted(src1, 1, src2, 1, 0.0)

# save the output image
cv2.imwrite('image.png', dst)

Выходное изображение OpenCV

Обратите внимание на различия между выходными изображениями в этом и предыдущем примерах.

Заключение

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *