自动识别图片点击脚本,文字识别自动点击器, 能识别屏幕内容并自动点击

本文涉及的产品
票证核验,票证核验 50次/账号
文档理解,结构化解析 100页
车辆物流识别,车辆物流识别 200次/月
简介: 本方案采用OCR文字识别+图像匹配双模式识别技术:OCR引擎识别屏幕文字内容OpenCV模板匹配识别图形元素PyAutoGUI实现

下载地址:http://m.pan38.com/download.php?code=RQEBET 提取码:6666

基于OCR的屏幕自动点击器开发指南
一、技术原理
本方案采用OCR文字识别+图像匹配双模式识别技术:
OCR引擎识别屏幕文字内容
OpenCV模板匹配识别图形元素
PyAutoGUI实现精准鼠标控
多线程处理保证实时性
二、核心代码实现

import cv2
import numpy as np
import pyautogui
import pytesseract
import time
import threading
from PIL import ImageGrab

class AutoClicker:
def init(self):
self.running = False
self.ocr_config = r'--oem 3 --psm 6'
self.template_threshold = 0.8
self.refresh_rate = 0.5

def start_clicker(self):
    self.running = True
    self.thread = threading.Thread(target=self._monitor)
    self.thread.start()

def stop_clicker(self):
    self.running = False
    self.thread.join()

def _monitor(self):
    while self.running:
        screenshot = ImageGrab.grab()
        screen_np = np.array(screenshot)

        # OCR模式处理
        text_data = pytesseract.image_to_string(screen_np, config=self.ocr_config)
        if "目标按钮" in text_data:
            self._click_text_target("目标按钮", screen_np)

        # 图像模板匹配模式
        templates = ["confirm.png", "accept.png", "next.png"]
        for template in templates:
            self._match_template(template, screen_np)

        time.sleep(self.refresh_rate)

def _click_text_target(self, target_text, screen_np):
    data = pytesseract.image_to_data(screen_np, config=self.ocr_config, output_type=pytesseract.Output.DICT)

    for i, text in enumerate(data['text']):
        if target_text in text:
            x = data['left'][i]
            y = data['top'][i]
            w = data['width'][i]
            h = data['height'][i]

            center_x = x + w//2
            center_y = y + h//2

            pyautogui.click(center_x, center_y)
            print(f"Clicked text target at ({center_x}, {center_y})")
            return True
    return False

def _match_template(self, template_path, screen_np):
    try:
        template = cv2.imread(template_path, 0)
        if template is None:
            return False

        screen_gray = cv2.cvtColor(screen_np, cv2.COLOR_BGR2GRAY)
        res = cv2.matchTemplate(screen_gray, template, cv2.TM_CCOEFF_NORMED)

        loc = np.where(res >= self.template_threshold)
        for pt in zip(*loc[::-1]):
            center_x = pt[0] + template.shape[1]//2
            center_y = pt[1] + template.shape[0]//2

            pyautogui.click(center_x, center_y)
            print(f"Clicked template {template_path} at ({center_x}, {center_y})")
            return True
    except Exception as e:
        print(f"Template matching error: {e}")
    return False

使用示例

if name == "main":
clicker = AutoClicker()
try:
clicker.start_clicker()
while True:
time.sleep(1)
except KeyboardInterrupt:
clicker.stop_clicker()

三、功能扩展

配置文件支持:读取JSON配置定义点击规则

多显示器适配:通过screeninfo库获取多屏信息

性能优化:使用CUDA加速OpenCV处理

日志系统:记录操作历史便于调试

图形界面:PyQt5构建管理界面

四、注意事项

管理员权限运行(Windows系统)

屏幕缩放设置为100%

不同语言需调整Tesseract训练数据

需要安装VC++运行库

相关文章
|
15天前
|
SQL 关系型数据库 MySQL
JOIN顺序优化:小表驱动大表的执行原则
在数据库查询优化中,“小表驱动大表”是一种提升SQL查询效率的常用策略。其核心思想是优先处理数据量较小的表,再与大表进行连接操作,从而减少数据扫描量、降低I/O开销并提高内存使用效率。通过显式指定JOIN顺序、使用EXISTS替代IN以及合理创建索引等方式,可以有效实现该原则。例如,在连接部门表(小表)和员工表(大表)时,先处理小表可显著提升查询性能。掌握这一原则有助于编写高效SQL语句,优化数据库整体表现。
|
存储 SQL 测试技术
使用ClickHouse进行向量搜索 - 第二部分
本文介绍了如何使用ClickHouse进行向量搜索。总体来说,本文通俗易懂地介绍了如何使用ClickHouse进行向量搜索,包括概念、实现、高级功能和应用示例,对使用ClickHouse进行向量搜索提供了很好的概述。
52203 19
|
12天前
|
Java 数据安全/隐私保护
快手小红书抖音留痕工具,自动留痕插件工具,java代码开源
这个框架包含三个核心模块:主操作类处理点赞评论、配置管理类和代理管理类。使用时需要配合
|
12天前
|
人工智能 数据安全/隐私保护
抖音留痕脚本,快手小红书留痕工具,截流获客刷短视频软件
AutoJS脚本实现了完整的留痕功能,包含日志记录、定时截图、事件监听和模拟操作四大模块
|
16天前
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
3644 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
5月前
|
存储 人工智能 安全
如何调用 DeepSeek-R1 API ?图文教程
首先登录 DeepSeek 开放平台,创建并保存 API Key。接着,在 Apifox 中设置环境变量,导入 DeepSeek 提供的 cURL 并配置 Authorization 为 `Bearer {{API_KEY}}`。通过切换至正式环境发送请求,可实现对话功能,支持流式或整体输出。
2450 15
|
SQL 存储 Oracle
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法(上)
一篇文章带你学会 Oracle 存储过程的基本介绍和高阶用法
|
7月前
|
人工智能 自然语言处理 算法
Qwen-Coder:通过Qwen 2.5模型实现智能代码生成的技术实践
Qwen-Coder:通过Qwen 2.5模型实现智能代码生成的技术实践