小白请教一下简单的 pc 端脚本

2023-03-06 18:48:23 +08:00
 yzqdm

我想实现一个简单的图像识别,然后操作键盘鼠标。举个例子,比如截图整个电脑桌面,然后判断里面有没有 qq 的图标,如果有,就执行后面的功能。我去网上看了一下,感觉 yolo5 太重太复杂了,python 这方面我只学过一点点基础语法。想请教一下各位大佬,有没有好的方案,或者现成的开源项目,感谢

2837 次点击
所在节点    Python
28 条回复
zhongjun96
2023-03-06 18:52:52 +08:00
换个思路,读取文件夹不是更简单?
vincentV2
2023-03-06 18:55:42 +08:00
感觉通过 opencv 模板匹配就行
参考: https://docs.opencv.org/4.x/de/da9/tutorial_template_matching.html
dreasky
2023-03-06 18:58:45 +08:00
SikuliX AirTest
raycool
2023-03-06 18:59:10 +08:00
嗯 模板匹配就行 难度不大。
hlx
2023-03-06 18:59:42 +08:00
uibot 了解一下?
dw2693734d
2023-03-06 19:00:33 +08:00
OpenCV ( https://opencv.org/ ):OpenCV 是一个用于计算机视觉和机器人的开源库,它可以用 Python 和其他语言编写。它有很多函数和算法,支持各种图像处理、计算机视觉和机器学习任务,包括图像识别。

PyAutoGUI ( https://pyautogui.readthedocs.io/en/latest/ ):PyAutoGUI 是一个用于控制键盘和鼠标的 Python 库,可以对显示器进行基于像素的控制。这可能对您的图像识别项目非常有用,因为您可以通过屏幕快照来检查图像中的特定区域。
FYFX
2023-03-06 19:05:31 +08:00
我觉得你不如先说你要干嘛,可能都不需要通过图像识别图标判断
fbichijing
2023-03-06 19:10:10 +08:00
不知道你想干什么。有时候用按键精灵可以比较快实现。
ClericPy
2023-03-06 21:44:30 +08:00
最近正好在写这方面的脚手架, 不过刚画了类图, 估计你赶不上用

直接用 pyautogui 吧, 自己会优化里面 pyscreeze 缓存, 并且开启 Opencv 加速的话, 比 autohotkey 还快好几倍
we9ta
2023-03-06 21:50:57 +08:00
直接读取注册表 判断有没有安装这个软件
yzqdm
2023-03-06 21:58:28 +08:00
@FYFX 其实就是我玩的一个游戏,有个任务是十分钟完成一次的,任务完成的时候会有个灯泡的图标亮,我想做的就是间隔一段时间识别一下我的游戏界面,看任务有没有完成,完成的话就点击提交,然后控制键盘鼠标帮我切换账号,就是这个事。额对了,我怎么新增一条置顶的评论,因为我说一开始的不太清楚,刚玩这个社区没多久,也感谢大家的帮助
zictos
2023-03-06 22:19:30 +08:00
直接 opencv 加 pyautogui ,我用这个组合写过很复杂的游戏方面的脚本,你想实现的基本都能实现。
nosilence
2023-03-06 22:48:20 +08:00
下个按键精灵,纯图形界面,不用 5 分钟搞定
BeautifulSoap
2023-03-06 23:10:30 +08:00
@yzqdm 你这需求按键精灵最合适
yzqdm
2023-03-06 23:58:01 +08:00
@zictos 好,我先用按键精灵试试,后面再研究一下 opencv ,多谢
yzqdm
2023-03-06 23:58:18 +08:00
@BeautifulSoap 决定先试试按键精灵了,谢谢大佬
y4nssss
2023-03-07 01:18:59 +08:00
import cv2
import pyautogui

screen = pyautogui.screenshot()
img = cv2.cvtColor(np.array(screen), cv2.COLOR_RGB2BGR)

template = cv2.imread("qq_icon.png", cv2.IMREAD_GRAYSCALE)
result = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)

if cv2.minMaxLoc(result)[1] > 0.8:
# 执行键盘鼠标操作
pyautogui.press("enter")
customsshen
2023-03-07 08:26:38 +08:00
airtest
ShineyWang
2023-03-07 09:18:32 +08:00
powerautomate 是按键精灵的上位替代
andy2415
2023-03-07 11:32:32 +08:00
ahk 完美符合需求

https://wyagd001.github.io/zh-cn/docs/lib/ImageSearch.htm

```ahk
CoordMode Pixel
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, C:\Users\aa.png
if (ErrorLevel = 2)
MsgBox Could not conduct the search.
else if (ErrorLevel = 1)
MsgBox Icon could not be found on the screen.
else
MsgBox The icon was found at %FoundX% : %FoundY%.
```

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

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

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

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

© 2021 V2EX