OpenCV-Python官方教程-04-图像上的算术运算(图像加法、图像混合、位运算)

  • 图像加法
    cv2.add()
# 图像加法
x = np.uint8([250])
y = np.uint8([10])
print (cv2.add(x,y))) # 250+10 = 260 => 255
print (x+y)# 250+10 = 260 % 256 = 4

[[255]]
[4]

  • 图像混合
    cv2.addWeighted(img1,alpha,img2,(1-alpha),beta),将同等分辨率的图片,按比例混合叠加在一起。
    数学公示dst = α · img1 + β · img2 + γ ,其中(α+β=1)
dst=cv2.addWeighted(img1,0.7,img2,0.3,0)
  • 位运算(and,or,not,xor)
import cv2
import numpy as np
img1 = cv2.imread('target.jpg')
img2 = cv2.imread('opencv.jpg')

rows,cols,channels = img2.shape
roi = img1[0:rows,0:cols]

gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
ret,mask = cv2.threshold(gray,172,255,cv2.THRESH_BINARY)

#cv2.bitwise_not()"非"操作对mask取反
mask_inv = cv2.bitwise_not(mask)

#cv2.bitwise()"与"操作取roi和mask中非零值,其他值为0
img1_bg = cv2.bitwise_and(roi,roi,mask = mask)

#cv2.bitwise()"与"操作取img2和mask_inv中非零值,其他值为0
img2_fg = cv2.bitwise_and(img2,img2,mask=mask_inv)

dst = cv2.add(img1_bg,img2_fg)

img1[0:rows,0:cols] = dst
cv2.imshow('res',img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值