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 · 3218 次点击
    这是一个创建于 662 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想实现一个简单的图像识别,然后操作键盘鼠标。举个例子,比如截图整个电脑桌面,然后判断里面有没有 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   ·   实用小工具   ·   2808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:40 · PVG 10:40 · LAX 18:40 · JFK 21:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.