如题,最近在写一个模拟人工操作的脚本,需要用到图像识别。比如识别图标后点击打开之类的。已经从网上搜到了 cv2.matchTemplate 和 cv2.minMaxLoc(),搭配 python-mss,可以走通。但是这俩函数有些缺点。
一是对模板和待搜索的图像有尺寸要求,最好是截个 png 图作为模板,这样就一定能匹配到。如果是从 exe 提取的 png 图标,256256 的,再到桌面上去匹配 3232 的小图标,就是找不到的。。
二是,假如模板是 100%dpi 截图的,但是实际场景的 dpi 是 175%,此时把模板尺寸乘以 1.75 再去匹配,肉眼看着两者是一样大小一样内容,但是两者的二进制数据是不一样的,所以还是匹配不到。。
说白了其实就是模糊匹配……
所以想请教一下各位大佬,对于以上两个问题,有优化方案吗?这方面我不是很了解,希望哪位大佬提示一下,比如告诉我包的名字啥的,我自己研究研究
没有机器视觉 opencv 之类的节点,只能放在这里了
1
dick20cm 2020-12-29 19:49:40 +08:00
scikit-image, pytorch
|
2
dick20cm 2020-12-29 19:50:07 +08:00
orb, sift, surf feature
|
3
qq275327347 OP 还有一个需求,比如图标匹配,我只想匹配图标中的内容,而不是整个矩形,描述不太专业,手动捂脸。。
|
4
huanghaozi 2020-12-29 20:28:36 +08:00
唔,大概是尺度不变性的问题,matchTemplate 里的 CV_TM_SQDIFF 参数好像能解决。
还有特征匹配里好像也有比较多方法解决。 |
5
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 |
6
lolioralice 2020-12-30 08:35:05 +08:00
你这个不就是图像搜索算法么...
CV2 有一大堆的实现 可以去看看 另外 ML 领域也有现成的方案可以用 |