按位计算+遮挡

bitwise_and是对二进制数据进行‘与’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘与’操作,1&1=1,1&0=0,0&1=0,0&0=0

bitwise_or是对二进制数据进行‘或’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘或’操作,1|1=1,1|0=1,0|1=1,0|0=0

bitwise_xor是对二进制数据进行‘异或’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘异或’操作,1^1=0,1^0=1,0^1=1,0^0=0

bitwise_not是对二进制数据进行‘非’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘非’操作,~1=0~0=1

import cv2
import matplotlib.pyplot as plt
import numpy as np

#显示图片
def show(image):
    plt.imshow(image)
    plt.axis('off')
    plt.show()

#读取图片,由BGR格式转换为RGB格式
def imread(image):
    image = cv2.imread(image)
    image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)
    return image
rectangle = np.zeros((300,300,3),dtype='uint8')
white = (255,255,255)
cv2.rectangle(rectangle,(25,25),(275,275),white,-1)
show(rectangle)

在这里插入图片描述

circle = np.zeros((300,300,3),dtype='uint8')
cv2.circle(circle,(150,150),150,white,-1)
show(circle)

在这里插入图片描述

#AND,与操作,有黑就变黑
image = cv2.bitwise_and(rectangle,circle)
show(image)

在这里插入图片描述

#OR,或操作,有白的地方就变白
image = cv2.bitwise_or(rectangle,circle)
show(image)

在这里插入图片描述

#XOR,异或操作,黑白就变白,黑黑和白白就变黑
image = cv2.bitwise_xor(rectangle,circle)
show(image)

在这里插入图片描述

#NOT,非操作,颜色取反
image = cv2.bitwise_not(circle)
show(image)

在这里插入图片描述

image = imread('test.jpeg')
show(image)
image.shape

在这里插入图片描述

#创建遮挡
mask = np.zeros(image.shape,dtype='uint8')
white = (255,255,255)
cv2.rectangle(mask,(50,50),(950,950),white,-1)
show(mask)

在这里插入图片描述

# 对图像遮挡
masked = cv2.bitwise_and(image,mask)
show(masked)

在这里插入图片描述

#创建遮挡
mask = np.zeros(image.shape,dtype='uint8')
white = (255,255,255)
cv2.circle(mask,(500,500),300,white,-1)
show(mask)

在这里插入图片描述

# 对图像遮挡
masked = cv2.bitwise_and(image,mask)
show(masked)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值