图像的加减乘除
import cv2
import numpy as np
# 注意:图像调用api做运算和直接做运算不一样,前者大于255,赋值255,小于零,赋值0;后者会针对255做一个轮回
img0 = "./R-C.jpg"
img1 = "./108.jpg"
# 读取图片
img0 = cv2.imread(img0)
img1 = cv2.imread(img1)
# 查看图像维度信息
print(img0.shape)
print(img1.shape)
# 将较大图像切片至小图像大小
img1 = img1[0:890,0:600,:]
#-----------------------------------------#
# 加法
#-----------------------------------------#
# 图像相加-- 像素值大于255的话全部变成255
img = cv2.add(img0,img1)
# 只加一个数值,像素值加上这个数值再模256为相加结果像素值
img = img1 + 100
#-----------------------------------------#
# 减法
#-----------------------------------------#
# 减完之后如果小于零,那么加上256,如果还为负数,继续加
img2 = img1 -img0
# 减完之后小于零的话变为零
img3 = cv2.subtract(img1,img0)
# 堆叠图像
img = np.hstack((img2,img3))
#-----------------------------------------#
# 除法
#-----------------------------------------#
# 如果是直接相除,就是直接除
cv2.divide(img0,img1)
#-----------------------------------------#
# 乘法
#-----------------------------------------#
cv2.multiply(img0,img1)
# 展示图像
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像融合
# 计算公式 img = img0 * w1 + img1 * w2 +bias
import cv2
import numpy as np
img0 = "./R-C.jpg"
img1 = "./108.jpg"
# 读取图片
img0 = cv2.imread(img0)
img1 = cv2.imread(img1)
# 将图像切割到同样大小
img1 = img1[0:890,0:600,:]
# 参数:(图像1,图像1的权重,图像2,图像2的权重,bias)
img = cv2.addWeighted(img0,0.2,img1,0.8,20)
# 展示图像
cv2.imshow("img",img)
cv2.waitKey(0)
cv2.destroyAllWindows()