1、opencv学习中常常需要画面叠加,opencv提供了很好的按位运算函数函数提供给我们调用。不用另外装模块。本文提供按位与,或,非,异或的使用。cv.bitwise_andcv.bitwise_orcv.bitwise_notcv.bitwise_xor下图为圆和矩形异或生成结果
2、import cv2 as cvimport numpy as npimport copy先初始化工作,生成两个图,一个矩形 一个圆形利用np生成的。rows = 400cols = 300channels = 3# 矩形,填充白色juxing = np.zeros((rows, cols), dtype = "uint8")cv.rectangle(juxing, (50, 125), (100, 225), 255, -1)cv.imshow("juxing", juxing)#圆形,填充白色yuanxing = np.zeros((rows, cols), dtype = "uint8")cv.circle(yuanxing, (100, 120), 30, 255, -1)cv.imshow("yuanxing", yuanxing)
3、1)与运算 参数为矩形和圆形二者交集# 0黑色, 1白色# 与运算,yu = cv.bitwise_and(juxing, yuanxing)cv.imshow("yu", yu)
4、2)二者的并集# 或运算,huo = cv.bitwise_or(juxing, yuanxing)cv.imshow("huo", huo)
5、3)对圆形取反# 非运算,fei = cv.bitwise_not(yuanxing)cv.imshow("fei", fei)
6、4)# 异或运算,不同为1, 相同为0yihuo = cv.bitwise_xor(juxing, yuanxing)cv.imshow("yihuo", yihuo)cv.waitKey(0)