例如:^符号是键盘在英文状态下的 shift+6组合键
a=1 ^ 0
print(a)
输出:
1
那么,我们在opencv中怎么来使用呢?
opencv中的逻辑运算就是对应位置元素进行与或非,异或。
举例:
a=204 & 213
print(a)
输出:
196
说明:python先将204和213转为二进制,然后做”与“运算,然后再将他们转为十进制,并输出!
举例:
a=~255
print(a)
输出:
-256
但是,在opencv中我们用非运算后,只会在0~255之间来回取反。不会超过0~255的范围。
举例:
import cv2
import numpy as np
# 读取图片
# luo = cv2.imread('baocun.jpg')
lufei = cv2.imread('1.jpg')
# 非操作 相当于255-图片的色值
lufei_not = cv2.bitwise_not(lufei)#把路飞这张图片进行”非“运算
img = np.hstack((lufei,lufei_not))#将原图片和取非后的图片合并显示
img1 = cv2.resize(img,None,fx=0.5,fy=0.5)#调节显示图片的大小
cv2.imshow('not',img1)
print(lufei[:2,:2])
print(lufei_not[:2,:2])
cv2.waitKey()
cv2.destroyAllWindows()
输出结果与显示结果:
[[[ 95 88 49]
[ 96 89 50]]
[[115 109 68]
[115 109 68]]]
[[[160 167 206]
[159 166 205]]
[[140 146 187]
[140 146 187]]]
打印结果的说明:255 - 第一组是原图片的色值数组 = 取非后的图片色值数组
举例:
import cv2
import numpy as np
# 读取图片
lufei= cv2.imread('3.png')
luo= cv2.imread('4.png')
#对两张图片进行切片
new_lufei = lufei[0:3600,:5000]
new_luo = luo[0:3600,:5000]
# 进行逻辑”与运算“
cat_and = cv2.bitwise_and(new_lufei,new_luo)
img = np.hstack((new_lufei,cat_and))#两张图片合并
img1 = cv2.resize(img,(1000,800))#调节显示图片的大小
cv2.imshow('and',img1)
print(new_lufei[:2,:2])
print(new_luo[:2,:2])
print('---------------------------')
print(cat_and[:2,:2])
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果与显示结果:new_lufei的二进制色值 + new_luo的二进制色值 = cat_and的二进制色值->cat_and的十进制色值
[[[ 95 88 49]
[ 95 88 49]]
[[102 95 57]
[102 95 57]]]
[[[69 58 51]
[68 57 51]]
[[67 55 50]
[66 54 50]]]
---------------------------
[[[69 24 49]
[68 24 49]]
[[66 23 48]
[66 22 48]]]
验证:(只验了数组的第一个值)
a=95 & 69
print(a)
结果:
69
举例:
import cv2
import numpy as np
# 读取图片
lufei= cv2.imread('3.png')
luo= cv2.imread('4.png')
#对两张图片进行切片
new_lufei = lufei[0:3600,:5000]
new_luo = luo[0:3600,:5000]
# 进行逻辑”与运算“
cat_and = cv2.bitwise_or(new_lufei,new_luo)
img = np.hstack((new_lufei,cat_and))#两张图片合并
img1 = cv2.resize(img,(1000,800))#调节显示图片的大小
cv2.imshow('and',img1)
print(new_lufei[:2,:2])
print(new_luo[:2,:2])
print('---------------------------')
print(cat_and[:2,:2])
cv2.waitKey(0)
cv2.destroyAllWindows()
输出结果与显示结果:
[[[ 95 88 49]
[ 95 88 49]]
[[102 95 57]
[102 95 57]]]
[[[69 58 51]
[68 57 51]]
[[67 55 50]
[66 54 50]]]
---------------------------
[[[ 95 122 51]
[ 95 121 51]]
[[103 127 59]
[102 127 59]]]
验证:(只验了数组的第一个值)
a=95 | 69
print(a)
结果:
95
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有