opencv -12 图像运算之按 《位或》 运算(图像融合&图像修复和去除)

位或运算

或运算的规则是,当参与或运算的两个逻辑值中有一个为真时,结果就为真。其逻辑关系可以类比为如图 所示的并联电路,两个开关中只要有任意一个闭合时,灯就会亮。

3-5 对参与或运算的算子的不同情况进行了说明,表中使用"or"表示或运算。

按位或运算是指将数值转换为二进制值后,在对应的位置上进行或运算。例如,表 3-6 展示了两个数值进行按位或运算的示例

OpenCV 中,可以使用 cv2.bitwise_or()函数来实现按位或运算,其语法格式为:

dst = cv2.bitwise_or( src1, src2, mask] )

式中:

 dst 表示与输入值具有同样大小的 array 输出值。

 src1 表示第一个 array 或 scalar 类型的输入值。

 src2 表示第二个 array 或 scalar 类型的输入值。

 mask 表示可选操作掩码,8 位单通道 array 值。

我们将11 图片位与运算 的代码放入到位或运算中

python 复制代码
import cv2
import numpy as np
a=cv2.imread("lena.png",1)
b=np.zeros(a.shape,dtype=np.uint8)
b[100:400,200:400]=255
b[100:500,100:200]=255
c=cv2.bitwise_or(a,b)
print("a.shape=",a.shape)
print("b.shape=",b.shape)
print("c.shape=",c.shape)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
cv2.waitKey()
cv2.destroyAllWindows()

运行效果:

按位非运算

非运算是取反操作,满足如下逻辑:

 当运算数为真时,结果为假。

 当运算数为假时,结果为真。

表 3-7 对参与运算算子的不同情况进行了说明,表中使用"not"表示非运算。

按位非运算是指将数值转换为二进制值后,在对应的位置上进行非运算。例如,表 3-8 展示了按位非运算的示例。

在 OpenCV 中,可以使用函数 cv2.bitwise_not()来实现按位取反操作,其语法格式为:

python 复制代码
dst = cv2.bitwise_not( src[, mask]] )

式中:

 dst 表示与输入值具有同样大小的 array 输出值。

 src 表示 array 类型的输入值。

 mask 表示可选操作掩码,8 位单通道 array 值。

按位异或运算

异或运算也叫半加运算,其运算法则与不带进位的二进制加法类似,其英文为"exclusive OR",因此其函数通常表示为 xor。

表 3-9 对参与异或运算的算子的不同情况进行了说明,其中"xor"表示异或运算。

按位异或运算是指将数值转换为二进制值后,在对应的位置上进行异或运算。例如,表 3-10

展示了两个数值进行按位异或运算的示例。

OpenCV 中,可以使用函数 cv2.bitwise_xor()来实现按位异或运算,其语法格式为:

python 复制代码
dst = cv2.bitwise_xor( src1, src2[, mask]] )

式中:

 dst 表示与输入值具有同样大小的 array 输出值。

 src1 表示第一个 array 或 scalar 类型的输入值。

 src2 表示第二个 array 或 scalar 类型的输入值。

 mask 表示可选操作掩码,8 位单通道 array 值

对图片按位异或运算

python 复制代码
import cv2
import numpy as np
a=cv2.imread("lena.png",1)
b=np.zeros(a.shape,dtype=np.uint8)
b[100:400,200:400]=255
b[100:500,100:200]=255
c=cv2.bitwise_xor(a,b)
print("a.shape=",a.shape)
print("b.shape=",b.shape)
print("c.shape=",c.shape)
cv2.imshow("a",a)
cv2.imshow("b",b)
cv2.imshow("c",c)
cv2.waitKey()
cv2.destroyAllWindows()
相关推荐
计算机安禾几秒前
【算法分析与设计】第21篇:回溯法的状态空间树与剪枝函数设计
大数据·人工智能·算法·机器学习·数据挖掘·剪枝
沉下去,苦磨练!2 分钟前
机器学习的鸢尾花建模流程
人工智能·机器学习
前端不太难4 分钟前
世界模型+强化学习:具身智能的两大核心支柱
人工智能
hsg776 分钟前
简述:ResNet34/ResNet50及SENet改进模型
人工智能·深度学习
AI专业测评7 分钟前
【炼字工坊x番茄小说 网文风向标】 20260530期 最新题材指南和写作指导(新人必看)
人工智能·ai写作·网文
“码”力全开7 分钟前
深度解析:基于 Docker 与边缘计算的国产化 AI 视频管理平台,如何通过源码交付实现多协议(GB28181/RTSP)与异构算力解耦?
人工智能·docker·边缘计算
凯丨8 分钟前
实战 Claude 的 effort 参数:让智能体“按需用力“省 token(含 Opus 4.8 更新)
人工智能
captain_AIouo9 分钟前
攻克行业技术痛点,GPT Image2重塑电商AI生图标准
大数据·人工智能·经验分享·gpt·aigc
雲明11 分钟前
YOLO12目标检测:WebUI界面3步操作指南
目标检测·计算机视觉·webui·yolo12
weixin_4684668511 分钟前
图像分割新手入门:从环境搭建到实战应用
图像处理·人工智能·深度学习·计算机视觉·ai