Python 如何使用OpenCv查找两个子图像的相交区域?

Python 如何使用OpenCv查找两个子图像的相交区域?,python,opencv,Python,Opencv,假设一个大图像有两个子图像。我试图检测两个子图像的重叠区域。我知道模板匹配可以帮助找到模板。但我不知道如何找到相交的区域,并在其中任何一个子图像中删除它们。请帮助我。MatchTemplate返回模板在图片中的最可能位置。您可以执行以下步骤: 在较大的图片中找到每张图片的(x,y)原点、宽度和高度 将它们保存为包含该数据的矩形(cv::Rect r1、cv::Rect r2) 使用&操作符,查找两个矩形(r1和r2)之间的重叠区域 使用特征描述符(筛选、冲浪、球体、雏菊等)从两幅图像中提取特征

假设一个大图像有两个子图像。我试图检测两个子图像的重叠区域。我知道模板匹配可以帮助找到模板。但我不知道如何找到相交的区域,并在其中任何一个子图像中删除它们。请帮助我。MatchTemplate返回模板在图片中的最可能位置。您可以执行以下步骤:

  • 在较大的图片中找到每张图片的(x,y)原点、宽度和高度
  • 将它们保存为包含该数据的矩形(cv::Rect r1、cv::Rect r2)
  • 使用&操作符,查找两个矩形(r1和r2)之间的重叠区域

使用特征描述符(筛选、冲浪、球体、雏菊等)从两幅图像中提取特征。然后匹配这些关键点并运行RANSAC来估计单应矩阵

这是一篇很好的代码帖子。

假设您有两个遮罩(每个子图像一个),您可以
cv2.bitwise_和()
将两个遮罩组合在一起,以仅获得两个遮罩之间的重叠/相交区域。