【问题标题】:OpenCV - Intersection between two binary imagesOpenCV - 两个二进制图像之间的交集
【发布时间】:2012-07-01 00:23:19
【问题描述】:

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

【问题讨论】:

标签: opencv image-segmentation


【解决方案1】:

以下是如何在 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()

如果您需要为Python 安装OpenCV,请关注these directions 以节省时间(安装一直很痛苦)。

【讨论】:

    【解决方案2】:

    您可以在这两个图像上使用cvAndcv::bitwise_and。仅当两个输入图像均为白色时,生成的图像才会为白色。

    编辑:以下是在二进制图像上应用cv::bitwise_andcv::bitwise_orcv::bitwise_xor 的结果:

    这是两个源图像:

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-20
      • 1970-01-01
      • 2016-01-20
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多