当前位置:  开发笔记 > 编程语言 > 正文

将重复出现的图像识别为更大的图像

如何解决《将重复出现的图像识别为更大的图像》经验,为你挑选了1个好方法。

编辑:这不是重复确定图像是否存在于较大的图像中,如果存在,请使用Python找到它,因为我事先不知道该模式

假设我有一个很大的图像(通常是用相机拍摄的照片,所以它可能有点吵,但我们假设现在不是这样)由多个较小的图像组成,它们彼此相等,类似于

在此输入图像描述

我需要找到每一个的轮廓.第一步是识别2D图像中存在重复图像(或未知图案).我怎样才能实现这第一步?

我确实读过,我可能会使用原始图像的FFT并搜索重复的频率,这是一种可行的方法吗?

为了解决这个问题:我事先不知道图像,也不知道它的大小或大图像上会有多少.图像可以从相机拍摄,因此它们可能会产生噪音.图像不会重叠.



1> Micka..:

您可以尝试使用描述的关键点(Sift/SURF/ORB /等)来查找图像中的特征,并尝试检测图像中的相同特征.您可以在如何在opencv中查找单个图像的关键点之间的欧几里德距离中看到这样的结果,其中3x存在相同的图像,并且自动检测并链接这些子图像之间的特征.

在你的图像中,结果看起来像

在此输入图像描述

所以你可以看到同一模式的不同出现确实是自动检测和链接的.

接下来的步骤是将特征分组到对象,以便可以提取"整个"模式.一旦有了模式的候选者,就可以为模式的每次出现提取单应性(使用一个参考候选模式)来验证它是模式.一个开放的问题是如何找到这样的候选人.也许值得尝试找到"并行特征",因此具有平行线和/或相同长度线的关键点匹配(见图).或者也许有一些图论方法.

总而言之,这整个方法将具有一些优势和不利因素:

好处:

现实世界的适用性 - 即使有噪音和一些透视效果,Sift和其他关键点也能很好地工作,因此有机会增加找到这样的模式.

缺点

参数化(定义两个要素成功匹配的含义)

不适合所有类型的模式 - 您的模式必须具有一些可提取的关键点

这些是一些想法,可能不完整;)

遗憾的是,还没有完整的代码可用于您的具体任务,但我希望这个想法很明确.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有