图片字符识别

article/2025/9/22 3:15:46

 程序员玩生死时速打字游戏-图片文字识别_哔哩哔哩bilibili

我的这个程序是识别图片中的字符,并且用键盘自动输出出来,从而达到模拟人按键的效果,进而来完成生死时速这个打字游戏,直接放代码:

import math
import time
import pyautogui #用于鼠标监听和返回鼠标坐标
import pymouse #鼠标相关操作
import torch #用于图片文字识别
from pykeyboard.windows import PyKeyboard #键盘相关操作
from PIL import ImageGrab #用于截图操作和图片转换
import easyocr #用于图片文字识别---这个是核心
from pynput.mouse import Listener,Button #用于鼠标监听
import numpy as np#截图---输入左上,右下的坐标,截取长方形区域图形
def cutPicture(left,top,right,botton):size = (left, top, right, botton)img = ImageGrab.grab(size)return img#输入需要识别的图片,返回图片识别内容
def distinguish(pic_name):reader = easyocr.Reader(['en'],gpu=False)  # gpu=False使用cpu进行处理result = reader.readtext(pic_name, batch_size=30, detail=0)  # 加参数detail=0,将结果简化return result#键盘事件,输入字符
def key_functions(string):k = PyKeyboard()k.press_key(string) #下按k.release_key(string) #松开#鼠标事件 返回鼠标所在的坐标
def mouse_functions():position = pyautogui.position()return position# 监听鼠标按键
# on_click(x, y, button, pressed)是鼠标点击时回调的函数
# 四个参数x,y,button,pressed。
# x,y描述的是鼠标点击的位置
# button是鼠标的按键,值有三种Button.left(左键)、Button.right(右键)、Button.middle(中键)
# 注意鼠标button使用按下一次会有两次反馈(按下和松开)。想要使用一次可以把一个if pressed:语句放在它的外层
# pressed的值是bool类型是鼠标按键的按下时是True,松开时为False
num = 0 #点击次数计数
def on_click(x, y, button, pressed):global num  # 全局变量if button == Button.left:num = num + 1times = math.ceil((num / 2)) #向上取整,判断点击次数# print('{0}位置{1}'.format('鼠标左键按下'if pressed else '鼠标左键松开',(x, y)))if times == 1 and num == 1:img = cutPicture(59, 525, 559, 548) #截图# img = cutPicture(x, y, x+500, y+50)  # 截图img = np.asanyarray(img)result = distinguish(img) #识别图片文字print(result)else:img = cutPicture(328, 525, 828, 548)  # 截图# img = cutPicture(x, y, x + 500, y + 50)  # 截图img = np.asanyarray(img)# img.save("D://PythonProject//gameTest//SSSSgame//5.png") #保存图片result = distinguish(img)  # 识别图片文字print(result)for j in range(len(result)): #循环图片文字结果for i in range(len(result[j])):time.sleep(0.05) #键盘输出文字的时间间隔,相当于调整打字的速度key_functions(result[j][i]) #键盘自动输出文字elif button == Button.middle: #按鼠标中键滑轮的退出鼠标监听return Falseif __name__ == '__main__':# time.sleep(1)  # 睡眠1秒with Listener(on_click=on_click) as listener: #鼠标监听,按压左键则触发事件listener.join()

程序执行逻辑:按压鼠标左键开始触发截图,按照特定坐标进行截图后进行图片字符识别,然后返回识别结果,触发键盘事件,遍历结果并进行模拟输出。

整个程序代码量只有几十行,难点在于easyocr的安装:

1.如果没有大型的项目,仅仅是玩玩,就跑CPU模式,识别速度已经够了,这样就直接按照正常库的安装easyocr就行了

2.如果有复杂的项目,需要更快的速度,需要跑GPU模式,则需要按照显卡的版本,驱动的版本,以及对应easyocr的版本和torch的GPU版本(非CPU版)以及对应torchvision的版本进行安装。这些版本对于网上都有相关资料。最后执行代码检测:

a = torch.cuda.is_available()

如果返回True则可以跑GPU模式,否则则不能。如图:

 以上就是程序整个大致过程了,感兴趣的朋友可以点击上面或者下面的链接评论,也请去视频里面点赞支持小编吧!

https://www.ixigua.com/7082572739277652517?logTag=bba780536c1499a18a56


http://chatgpt.dhexx.cn/article/VebWgpxT.shtml

相关文章

python--识别图片中的文字

本篇文章主要参考了 python图像处理之识别图像中的文字 这篇文章,在实现的过程中出现了些偏差,特此记录。因为此时笔者不是第一次安装,所展示的结果会和首次安装的结果有所差别。 1.安装PIL 以管理员的身份打开命令提示符,输入&…

图片中文字的识别

主要用到tesseract这个工具,以及pytesseract和pillow两个库。 首先下载tesseract这个工具,下载地址: Index of /tesseracthttps://digi.bib.uni-mannheim.de/tesseract/ 根据自己电脑系统进行下载,下载后安装,安装的…

文字识别:Tesseract OCR

一、安装并配置Tesseract 1、下载Tesseract-OCR (网上直接下载即可) 2、双击安装,选择所有人均可使用,避免权限问题 勾选最后一项添加语言包,但是全部勾选需要1.3G,可以点开加号,选择自己所需的…

如何识别图片中的文字

工具/原料 http://jingyan.baidu.com/article/ae97a64699f19dbbfc461d47.html WPS办公软件 AJViewer文字识别软件 准备工作 1 下载软件 ① 在“百度搜索”中输入这2款软件的软件名进行下载。 ② 在“百度网盘”下载,地址是:http://pan.baidu.com/share/l…

免费在线图片识别文字工具

在平时工作中,经常会遇到这样的场景:将图片转为文字。如果只需处理一两张图片或者PDF,用键盘敲文字占用的时间也不会很长。如果文件非常多,用电脑把这些文字全部敲出来,太浪费时间了?有没有一款工具&#x…

图像文字识别

图像文字识别 (结尾附样例展示) 以下为与图像通用识别的 Python示例代码* #!/usr/bin/env python #codingutf-8from aliyunsdkcore.client import AcsClient from aliyunsdkcore.acs_exception.exceptions import ClientException from aliyunsdkcore.…

OCR文字识别

OCR定义和起源 OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计…

图片识别文字

浏览链接:http://116.62.147.89:8081/OCRUtil/index.html 最终结果图: 如果已经有access_token,请直接跳到第6步 1,注册并登录百度 2,选择管理控制台 3,选择文字识别 4,选择创建应用 按要求填写…

识别图片文字怎么弄?我来教大家怎么识别图片中的文字

有时,我们需要从图片中提取文本以进行编辑或搜索。虽然手动转录是一种选项,但这是费时费力的工作,而且容易出错。为了解决这个问题,出现了各种各样的技术和工具,可以帮助我们自动识别图片中的文字。在本文中&#xff0…

如何识别图片文字?这几个方法助你轻松搞定

你是否有遇到过这样的经历?收到了领导发来的一份资料,但是很多是图片格式,而我们需要用到图片中的文字内容,这时你会怎么解决呢?如果使用传统的方法,一字一句打出来的话,无疑会增加我们的工作。…

navicat12简体中文专业版免费使用教程

1、Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。本教程绝对可用,不像其他的都是大多数搬运别人的文章,也不试试能不能用,简直是浪费大家的…

实测可用 Navicat Premium 12破解解决方案

1.下载安装 64位简体中文版https://pan.baidu.com/share/init?surlk9dYays0z7EdOVNgDS_bQw 提取码:7w9a 2.安装上面版本 3.下载破解补丁https://pan.baidu.com/s/19ct4Afc3bTPdTa35Pldvqg 提取码:r2e5 开始破解: 一.选择补丁版本 简体…

工具篇:Navicat-12版本破解安装

Navicat 12 破解方式,亲测有效 方法如下: 先安装 navicat的exe包将简体中文63位里面的两个文件复制到navicat的安装根目录打开软件,开始会提示你试用到1899年,以后点击试用,就可以一直试用了。就是这么简单。 上面提…

Day15_08_Navicat for MySQ中文破解版(无需激活码)安装教程

Navicat for MySQ中文安装教程 一. 下载中文pojieban Navicat for MySQ 链接: https://pan.baidu.com/s/1DO8yJnvTfBndZJ6Hprr7Og 提取码: ik7d 二. 解压下载后的文件 文件中有两个.exe文件,点击navicat111_mysql_cs_x64.exe 进行安装 三. 点击PatchNavicat.exe选择安装Nav…

Navicat for MySQ中文破解版(无需激活码)

Navicat for MySQ中文破解版(无需激活码) 转载自:https://blog.csdn.net/a599174211/article/details/82795658 1、下载破解版Navicat for MySQ中文破解版 2、解压下载后的文件有两个.exe文件,点navicat111_mysql_cs_x64.exe 进行安装 3、安…

Navicat premium for Mac 12 破解 纯手工

今天用了一天的时间,寻找破解方法。终于找到大神的破解教程。即使在教程下,也折磨了好久。记录一下,方便以后学习。 测试环境:MacOS High Sierra 10.13.4 Windows版破解教程请看 https://www.52pojie.cn/thread-688820-1-1.html破…

Navicat Premium 12 中文版v12.1.19

nacicat premium 12中文版是mac平台上一款易于使用的多连接数据库管理工具,它可以帮助您在单个应用程序中同时连接到MySQL,Oracle,SQL Server,SQLite和PostgreSQL数据库,让对多种数据库的数据库管理变得非常简单,而且Navicat Premium成功结合了其他Navicat成员的功能,并…

navicat 12 for mac 中文破解版使用说明

1. 将下载的Navicat_Premium中文破解版.zip,下载完成后,解压出现如下图两个文件 2. 打开Navicat_Premium_12.0.22.dmg。如果出现打开失败这种情况,请打开mac的未知源选项 打开命令行输入如下代码: sudo spctl --master-disable …

Navicat Premium for Mac 11.1.8 免费中文破解版下载

之前安装的一款数据库软件Navicat试用版本到期了,所以在网上找了一款破解永久使用版Navicat Premium for Mac 11.1.8 完美破解版,完美支持OS X 10.10, 简体中文版,Navicat是最优秀的数据库图形化管理客户端,支持MySQL、SQL Server…

Navicat fro oracle 简体中文破解版(亲测可用)

简单点,直接上货了. 1.下载Navica安装,本人是64位,链接如下(内含使用说明): https://download.csdn.net/download/banglong0/10716809 2.打开Navicat,新建链接。 3.配置连接参数 (注意:箭头标记一定要与在Oracle下载目录下搜索tnsnames.ora 中的SERVICE_NAME一致…