OpenCV中图像的运算

两个图像相加:cv2.add(A,B)

加运算会使图片更亮

# 图像加法的API通过add(A,B)
img2 = cv2.add(cat1, img)

两个图像相减:cv2.subtract(A,B)

减运算会使图片更暗

# 图像减法的API通过subtract(A,B),含义就是A-B
img3 = cv2.subtract(cat1, img)

图像的乘与除:

乘 cv2.multiply(A,B)

除  cv2.divide(A,B)

乘除只是让图片亮(暗)的更快。

import cv2
import numpy as np


cat = cv2.imread('d:\\download\\3.jpg')
cat1 = cv2.resize(cat, (500, 400), fx=1, fy=1)
'''
# 图的加法运算就是矩阵的加法运算
因此,加法运算的两张图必须是相等的
'''
print(cat1.shape)
img = np.ones((400, 500, 3), np.uint8)*50
# 图像加法的API通过add(A,B)
img2 = cv2.add(cat1, img)
# 图像减法的API通过subtract(A,B),含义就是A-B
img3 = cv2.subtract(cat1, img)
# 图像的乘
img4 = cv2.multiply(cat1, img2)

res1 = np.hstack([img2, cat1])
res2 = np.hstack([img3, cat1])
res3 = np.hstack([img4, cat1])
cv2.imshow('res1', res1)
cv2.imshow('res2', res2)
cv2.imshow('res3', res3)
key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    cv2.destroyAllWindows()

运行结果为:

 图像的融合cv2.addWeighted(A,alpha,B,bate,gamma)

这里的融合时,也需要两张图片的尺寸相同

alpha(A融合后A在图片中占的权重)

bate(B融合后B在图片中的权重)

gamma(静态权重,也就是说如果最后有此值,最后生成的图片的所有元素都要加上这个值)

import cv2
import numpy as np


cat = cv2.imread('d:\\download\\3.jpg')
B1 = cv2.imread('d:\\download\\2.jpg')
cat1 = cv2.resize(cat, (500, 400))
cat = cv2.resize(cat, (600, 500))
B1 = cv2.resize(B1, (600, 500))
'''
# 图的加法运算就是矩阵的加法运算
因此,加法减法运算的两张图必须是相等的,融合时两张图的属性也必须是相同的
'''
print(cat.shape)
print(cat1.shape)
print(B1.shape)
img = np.ones((400, 500, 3), np.uint8)*50
# 图像加法的API通过add(A,B)
img2 = cv2.add(cat1, img)
# 图像减法的API通过subtract(A,B),含义就是A-B
img3 = cv2.subtract(cat1, img)
# 图像的乘
img4 = cv2.multiply(cat1, img2)
# 图像的除
img5 = cv2. divide(cat1, img2)
# 图像的融合
img6 = cv2.addWeighted(cat, 0.6, B1, 0.4, 0)

res1 = np.hstack([img2, cat1])
res2 = np.hstack([img3, cat1])
res3 = np.hstack([img4, cat1])
res4 = np.hstack([img5, cat1])
res5 = np.hstack([img6, cat])
cv2.imshow('res1', res1)
cv2.imshow('res2', res2)
cv2.imshow('res3', res3)
cv2.imshow('res4', res4)
cv2.imshow('res5', res5)
key = cv2.waitKey(0)
if key & 0xFF == ord('q'):
    cv2.destroyAllWindows()

你可能感兴趣的:(python-opencv,opencv,计算机视觉,人工智能)