Python 如何使用OpenCV在多个图像和文本的文档中查找图像位置

Python 如何使用OpenCV在多个图像和文本的文档中查找图像位置,python,opencv,image-processing,Python,Opencv,Image Processing,我有一个包含文本和图像的文档(png格式)和一个包含在文档中的源图像(源图像更大,质量更好)。 我想在文档中找到源图像的位置(坐标) 使该过程变得复杂的是,文档中的源图像可能缩放不均(例如:垂直方向比水平方向更大)、略微剪裁(因此比源图像小)以及源图像的轻微修改版本(例如:具有圆形边缘) 我试过这个方法,但效果一般——它不能很好地处理不均匀的缩放 有没有一种使用python和openCV的方法?或者另一种方法?1)将彩色图像转换为灰色,执行一些阈值,然后查找轮廓: 2) 查找轮廓的边界框 3)

我有一个包含文本和图像的文档(png格式)和一个包含在文档中的源图像(源图像更大,质量更好)。 我想在文档中找到源图像的位置(坐标)

使该过程变得复杂的是,文档中的源图像可能缩放不均(例如:垂直方向比水平方向更大)、略微剪裁(因此比源图像小)以及源图像的轻微修改版本(例如:具有圆形边缘)

我试过这个方法,但效果一般——它不能很好地处理不均匀的缩放

有没有一种使用python和openCV的方法?或者另一种方法?

1)将彩色图像转换为灰色,执行一些阈值,然后查找轮廓:

2) 查找轮廓的边界框

3) 最有可能的是,您的图像将有一些属性供您从步骤2中生成的列表中选择。例如,宽度和高度大于最小值

4) 现在使用选定的边界框创建一个遮罩

5) 现在使用卡方距离比较遮罩区域和图像之间的直方图分布。距离小于1表示完全匹配


6) 边界框给出了要查找的(x,y)坐标。

使用大面积(外部)轮廓从文本文档中提取每个图像。获取尺寸并缩放一个图像以匹配另一个图像的大小。然后在两者之间进行差异或使用模板匹配来查找匹配分数。