如何使用 python 中的 opencv 找出一幅图像中存在的一条线是否是另一幅图像中存在的另一条线的子集?

How to find out whether a line present in one image is subset of another line present in different image using opencv in python?

我有两张图片,分别是 imageA 和 imageB,如下所示。现在我需要检查 imageB 中存在的线是否已经存在于图像 A 中(即)imageB 中存在的线应该是 imageA 中存在的线的子集。我在 open cv 中使用了图像减法,但无法获得所需的输出。我是opencv的新手。所以有人请提供您的意见。

注意:可以有一些线匹配阈值,因为两个图像中的线不会 100% 完全匹配。

图片A:

图片B:

这是一个方法:

  1. 拍摄图像 A,对它进行阈值处理并在形态学上稍微扩大它以允许 position/alignment 中的细微差异。更大的膨胀将允许更大的错位。

  1. 拍摄图像 B,对其进行阈值处理。计算非零像素。

  2. 对两幅图像进行按位与计算结果中有多少像素为白色 - 即两幅图像共有。

  1. 计算第 2 步和第 3 步结果的比率,以衡量图像 B 中位于或非常接近图像 A 中的像素的百分比。