我如何在 python 3 中搜索图像中的图案

How could I search for patterns in a image in python 3

我正在python 3 中制作一个图像识别程序,如果无法识别,我已经得到了项目的名称,要搜索的图像的路径,以及我使用了 PIL 到 return 每个像素的 RGB 值。但是:既然我已经真正了解了模式识别,我不知道如何尝试它。不是代码错误的问题,也不是不理解的问题(这是我学习编程语言的最好方式),而是我不知道要编程什么(背后的逻辑,如果你会)。

请注意: 我不是在寻找任何代码,纯粹只是对其背后逻辑的解释。 (我知道这可能不是问的正确地方,但由于这是一个编程问题,所以我认为没问题)

这几天一直困扰着我和我的编程朋友,所以任何帮助将不胜感激。

你应该试试 OpenCV and Template Matching approach. There are more sophisticated algorithms such Feature Matching。视情况而定。

这背后的逻辑其实很简单。我在谷歌上搜索了一下,发现它是这样工作的:

您需要将所有像素与您需要比较的图案中的像素进行比较,然后只需创建一个 var,当像素不匹配时将其设置为 False。一旦发生这种情况,比较函数就会停止(您可以使用带有 break 语句的 while True: 函数)然后返回 False。如果匹配,则不会设置为 'False' 并且开头的变量将保持为 True。

我希望我能给你一个想法。

此致,heureka

尝试使用 OpenCV。示例算法可以是:

  1. 使用特征检测器(ORB、Sift、Surf)从模板中提取关键点和特征
  2. 对图片做同样的事情
  3. 比较关键点描述符(例如,对于使用 BFMatcher 的 ORB)
  4. 将匹配关键点的数量与您选择的阈值进行比较