OpenCV - 两个二进制图像之间的交叉点

Xte*_*alz 15 opencv image-segmentation

假设我有两个相同大小的二进制图像.如何找到两个二进制图像之间的交集?只有两个图像上相同坐标(位置)的像素为白色(灰色 - 255)才会在输出图像(交叉点)上产生白色像素.

Ove*_*Ove 45

您可以在两个图像上使用cvAndcv :: bitwise_and.只有输入图像为白色时,生成的图像才为白色.

编辑:这是在二进制图像上应用cv :: bitwise_and,cv :: bitwise_orcv :: bitwise_xor的结果:

这些是两个源图像:

图片1 图片2

这是应用cv :: bitwise_and的结果:

imgAnd

这是应用cv :: bitwise_or的结果:

imgOr

这是应用cv :: bitwise_xor的结果:

imgXor

  • 好的航海标志:D (2认同)

zel*_*usp 5

这是在python中执行此操作的方法(带有上图):

import cv2

img1 = cv2.imread('black_top_right_triangle.png',0)
img2 = cv2.imread('black_bottom_right_triangle.png',0)

img_bwa = cv2.bitwise_and(img1,img2)
img_bwo = cv2.bitwise_or(img1,img2)
img_bwx = cv2.bitwise_xor(img1,img2)

cv2.imshow("Bitwise AND of Image 1 and 2", img_bwa)
cv2.imshow("Bitwise OR of Image 1 and 2", img_bwo)
cv2.imshow("Bitwise XOR of Image 1 and 2", img_bwx)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

如果您需要安装OpenCV用于Python通过以下,节省时间这些方向(安装历来是一个相当痛苦)。