小白请教一下简单的 pc 端脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yzqdm
V2EX    Python

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

  •  
  •   yzqdm 2023-03-06 18:48:23 +08:00 3825 次点击
    这是一个创建于 954 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    28 条回复    2023-03-19 18:17:19 +08:00
    zhongjun96
        1
    zhongjun96  
       2023-03-06 18:52:52 +08:00
    换个思路,读取文件夹不是更简单?
    vincentV2
        2
    vincentV2  
       2023-03-06 18:55:42 +08:00
    感觉通过 opencv 模板匹配就行
    参考: https://docs.opencv.org/4.x/de/da9/tutorial_template_matching.html
    dreasky
        3
    dreasky  
       2023-03-06 18:58:45 +08:00
    SikuliX AirTest
    raycool
        4
    raycool  
       2023-03-06 18:59:10 +08:00
    嗯 模板匹配就行 难度不大。
    hlx
        5
    hlx  
       2023-03-06 18:59:42 +08:00
    uibot 了解一下?
    dw2693734d
        6
    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
        7
    FYFX  
       2023-03-06 19:05:31 +08:00   1
    我觉得你不如先说你要干嘛,可能都不需要通过图像识别图标判断
    fbichijing
        8
    fbichijing  
       2023-03-06 19:10:10 +08:00
    不知道你想干什么。有时候用按键精灵可以比较快实现。
    ClericPy
        9
    ClericPy  
       2023-03-06 21:44:30 +08:00
    最近正好在写这方面的脚手架, 不过刚画了类图, 估计你赶不上用

    直接用 pyautogui 吧, 自己会优化里面 pyscreeze 缓存, 并且开启 Opencv 加速的话, 比 autohotkey 还快好几倍
    we9ta
        10
    we9ta  
       2023-03-06 21:50:57 +08:00
    直接读取注册表 判断有没有安装这个软件
    yzqdm
        11
    yzqdm  
    OP
       2023-03-06 21:58:28 +08:00
    @FYFX 其实就是我玩的一个游戏,有个任务是十分钟完成一次的,任务完成的时候会有个灯泡的图标亮,我想做的就是间隔一段时间识别一下我的游戏界面,看任务有没有完成,完成的话就点击提交,然后控制键盘鼠标帮我切换账号,就是这个事。额对了,我怎么新增一条置顶的评论,因为我说一开始的不太清楚,刚玩这个社区没多久,也感谢大家的帮助
    zictos
        12
    zictos  
       2023-03-06 22:19:30 +08:00 via Android
    直接 opencv 加 pyautogui ,我用这个组合写过很复杂的游戏方面的脚本,你想实现的基本都能实现。
    nosilence
        13
    nosilence  
       2023-03-06 22:48:20 +08:00
    下个按键精灵,纯图形界面,不用 5 分钟搞定
    BeautifulSoap
        14
    BeautifulSoap  
       2023-03-06 23:10:30 +08:00
    @yzqdm 你这需求按键精灵最合适
    yzqdm
        15
    yzqdm  
    OP
       2023-03-06 23:58:01 +08:00
    @zictos 好,我先用按键精灵试试,后面再研究一下 opencv ,多谢
    yzqdm
        16
    yzqdm  
    OP
       2023-03-06 23:58:18 +08:00
    @BeautifulSoap 决定先试试按键精灵了,谢谢大佬
    y4nssss
        17
    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
        18
    customsshen  
       2023-03-07 08:26:38 +08:00 via Android
    airtest
    ShineyWang
        19
    ShineyWang  
       2023-03-07 09:18:32 +08:00
    powerautomate 是按键精灵的上位替代
    andy2415
        20
    andy2415  
       2023-03-07 11:32:32 +08:00   1
    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%.
    ```
    N9f8Pmek6m8iRWYe
        21
    N9f8Pmek6m8iRWYe  
       2023-03-07 13:57:25 +08:00
    clicknuim
    Droi
        22
    Droi  
       2023-03-07 18:36:47 +08:00
    你可以参考这个魔兽的钓鱼挂,和你想要的功能差不多
    https://github.com/codingories/mywowfishing

    https://juejin.cn/post/6844904077768278029 这找到的
    yzqdm
        23
    yzqdm  
    OP
       2023-03-08 09:51:35 +08:00
    @Droi 感谢
    yzqdm
        24
    yzqdm  
    OP
       2023-03-16 10:04:26 +08:00
    @zictos 大佬,我想请教一下,我用 pyautogui ,鼠标移动到游戏界面里,就失效了。我去网上查了一下,好像是要驱动级的键鼠模拟才可以,想问下有没有什么其他的方案
    yzqdm
        25
    yzqdm  
    OP
       2023-03-16 10:05:08 +08:00
    @y4nssss 大佬,我想请教一下,我用 pyautogui ,鼠标移动到游戏界面里,就失效了。我去网上查了一下,好像是要驱动级的键鼠模拟才可以,想问下有没有什么其他的方案
    yzqdm
        26
    yzqdm  
    OP
       2023-03-16 17:13:02 +08:00
    @dw2693734d 大佬,我想请教一下,我用 pyautogui ,鼠标移动到游戏界面里,就失效了。我去网上查了一下,好像是要驱动级的键鼠模拟才可以,想问下有没有什么其他的方案
    zcjwxf
        27
    zcjwxf  
       2023-03-18 01:03:22 +08:00
    没有很强的 windows 水平上来就封号的............别浪费时间了, 简单的识别+按键模拟是个人都能写出来
    yzqdm
        28
    yzqdm  
    OP
       2023-03-19 18:17:19 +08:00
    @zcjwxf 我玩的私服,群主说了可以弄,而且我只是想弄个脚本节省无用的时间而已,这都不行吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2631 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:30 PVG 23:30 LAX 08:30 JFK 11:30
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86