OpenCV+Python的位操作方法

OpenCV中的位操作包括以下四种
核心思想: src1和src2所有的数据做位运算,mask决定保留哪些数据,默认全部保留。

cv2.bitwise_and(src1, src2, dst=None, mask = None)
cv2.bitwise_or(src1, src2, dst=None, mask = None)
cv2.bitwise_not(src1, src2, dst=None, mask = None)
cv2.bitwise_xor(src1, src2, dst=None, mask = None)

举个例子:模拟两个2*2的彩色图像做与运算,并保留其中三个像素的值

img1 = np.array([[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]])
img2 = np.array([[[2, 3, 3], [2, 3, 3]], [[2, 3, 5], [2, 3, 3]]])
mask = np.uint8([[1, 0], [1, 1]])
res = cv2.bitwise_or(img1, img2, mask=mask)
print(res)
"""
[[[2 3 3]
  [0 0 0]]

 [[2 3 7]
  [2 3 3]]]

2 -> 10
3 -> 11
10 | 11 = 11
"""

你可能感兴趣的:(OpenCV+Python的位操作方法)