我如何在 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。示例算法可以是:
- 使用特征检测器(ORB、Sift、Surf)从模板中提取关键点和特征
- 对图片做同样的事情
- 比较关键点描述符(例如,对于使用
BFMatcher
的 ORB)
- 将匹配关键点的数量与您选择的阈值进行比较
我正在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。示例算法可以是:
- 使用特征检测器(ORB、Sift、Surf)从模板中提取关键点和特征
- 对图片做同样的事情
- 比较关键点描述符(例如,对于使用
BFMatcher
的 ORB) - 将匹配关键点的数量与您选择的阈值进行比较