问下各位大佬, Python 下除了 cv2.matchTemplate,还有什么宽容度高一点的图像识别模块吗?

2020-12-29 19:41:04 +08:00
 qq275327347

如题,最近在写一个模拟人工操作的脚本,需要用到图像识别。比如识别图标后点击打开之类的。已经从网上搜到了 cv2.matchTemplate 和 cv2.minMaxLoc(),搭配 python-mss,可以走通。但是这俩函数有些缺点。

一是对模板和待搜索的图像有尺寸要求,最好是截个 png 图作为模板,这样就一定能匹配到。如果是从 exe 提取的 png 图标,256256 的,再到桌面上去匹配 3232 的小图标,就是找不到的。。

二是,假如模板是 100%dpi 截图的,但是实际场景的 dpi 是 175%,此时把模板尺寸乘以 1.75 再去匹配,肉眼看着两者是一样大小一样内容,但是两者的二进制数据是不一样的,所以还是匹配不到。。

说白了其实就是模糊匹配……

所以想请教一下各位大佬,对于以上两个问题,有优化方案吗?这方面我不是很了解,希望哪位大佬提示一下,比如告诉我包的名字啥的,我自己研究研究

没有机器视觉 opencv 之类的节点,只能放在这里了

1391 次点击
所在节点    程序员
6 条回复
dick20cm
2020-12-29 19:49:40 +08:00
scikit-image, pytorch
dick20cm
2020-12-29 19:50:07 +08:00
orb, sift, surf feature
qq275327347
2020-12-29 20:16:46 +08:00
还有一个需求,比如图标匹配,我只想匹配图标中的内容,而不是整个矩形,描述不太专业,手动捂脸。。
huanghaozi
2020-12-29 20:28:36 +08:00
唔,大概是尺度不变性的问题,matchTemplate 里的 CV_TM_SQDIFF 参数好像能解决。
还有特征匹配里好像也有比较多方法解决。
gargar
2020-12-30 01:08:15 +08:00
feature matching 算法,( sift 挺好,不过有专利,只在某些版本 opencv 里有)
https://docs.opencv.org/master/dc/dc3/tutorial_py_matcher.html
https://docs.opencv.org/master/d1/de0/tutorial_py_feature_homography.html
lolioralice
2020-12-30 08:35:05 +08:00
你这个不就是图像搜索算法么...

CV2 有一大堆的实现 可以去看看 另外 ML 领域也有现成的方案可以用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX