3.3按位逻辑运算

OpenCV 中提供了函数 cv2.addWeighted(),用来实现图像的加权和(混合、融合),该函数 的语法格式为:
dst=cv2.addWeighted(src1, alpha, src2, beta, gamma)

  • 其中,参数alpha和beta是src1和src2所对应的系数,它们的和可以等于1,也可以不等于1。
  • 该函数实现的功是dst=src1alpha+src2beta+gamma。gamma的值可以是0,但是必须有值,不可以省略。
  • 可以理解为“结果图像=图像1系数1+图像2系数2+亮度调节量”

【例 3.4】使用数组演示函数 cv2.addWeighted()的使用。】

import cv2 
import numpy as np

img1 = np.ones((3,4),dtype=np.uint8)*100
img2 = np.ones((3,4),dtype=np.uint8)*10
print("img1=\n",img1)
print("img2=\n",img2)

img3 = cv2.addWeighted(img1,0.6,img2,5,gamma=3)
print("img3=\n",img3)

【例 3.5】使用函数 cv2.addWeighted()对两幅图像进行加权混合,观察处理结果。

a = cv2.imread("/Users/zhaofeier/Desktop/源代码及图像/chapter3/boat.bmp")
b = cv2.imread("/Users/zhaofeier/Desktop/源代码及图像/chapter3/lena.bmp")

result = cv2.addWeighted(a,0.6,b,0.4,0)

cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("result",result)

cv2.waitKey()
cv2.destroyAllWindows()

【例 3.6】使用函数 cv2.addWeighted()将一幅图像的 ROI 混合在另外一幅图像内。

lena = cv2.imread("/Users/zhaofeier/Desktop/lena512.bmp",-1)
dollar = cv2.imread("/Users/zhaofeier/Desktop/dollar.bmp",-1)

cv2.imshow("lena",lena)
cv2.imshow("dollar",dollar)

face1 = lena[220:400,250:350]
face2 = dollar[160:340,200:300]

result = cv2.addWeighted(face1,0.6,face2,0.4,0)
dollar[160:340,200:300] = result

cv2.imshow("result",dollar)
cv2.waitKey()
cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮棂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值