Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python截图识别文字_python截图并转换文字「建议收藏」

python截图识别文字_python截图并转换文字「建议收藏」

作者头像
全栈程序员站长
发布于 2022-08-13 02:25:04
发布于 2022-08-13 02:25:04
3.4K0
举报

大家好,又见面了,我是你们的朋友全栈君。

截图识别文字

作者

万开国[acewan]

【摘要】

本文主要介绍了使用pyHook、pythoncom、pytesseract、PIL、win32api等module实现python的截图识别文字功能。

【正文】

一准备及介绍

1.pyhook

pyHook通过pip直接安装比较困难,可以先下载whl文件再使用pip安装

选择与python环境一致的文件下载,使用cmd导向到下载文件夹,执行安装即可

其他module直接在控制台使用pip命令安装即可

2.module介绍

Pyhook:用于windows平台,监听鼠标和键盘事件,

:提供了访问win32 api的能力

Pytesseract:基于google’s Tesseract-OCR的独立封装包

PIL:平台上的图像处理标准库

Win32api:封装windows win32 api额模块

二具体代码

# coding: utf8

import pyHook

import pythoncom

import pytesseract

import sys

from PIL import Image, ImageGrab

from win32api import GetSystemMetrics as

gsm

#提前绑定鼠标位置事件

old_x, old_y = 0, 0

new_x, new_y = 0, 0

full = False

hm = None

chinese = True

#图片识别文字方法,

def GetString(fileName):

#

print(imagePath)

if(chinese):

text = pytesseract.image_to_string(Image.open(fileName), lang=’chi_sim’)

else:

text = pytesseract.image_to_string(Image.open(fileName))

fl = open(‘Testxt.txt’, ‘w’)

fl.write(text)

fl.close()

print(text)

return

def on_mouse_event(event):

global old_x, old_y, new_x, new_y, full, hm

if full:

image = ImageGrab.grab((0, 0, gsm(0), gsm(1)))

else:

#鼠标左键按下时,记录当前鼠标位置为截图矩形对角线的起始点

if event.MessageName == “mouse left down”:

old_x, old_y = event.Position

#鼠标左键抬起时,记录当前位置为截图矩形对角线的结束点

if event.MessageName == “mouse left up”:

new_x, new_y = event.Position

#解除事件绑定

hm.UnhookMouse()

hm = None

image = ImageGrab.grab((old_x, old_y, new_x, new_y))

fiName=’printscreen.jpg’

image.save(fiName)

GetString(fiName)

if event.MessageName == “mouse left down”:

sys.exit()

return

def capture():

#创建钩子管理对象

hm = pyHook.HookManager()

#将已准备好的方法注册到鼠标事件

hm.SubscribeMouseAll(on_mouse_event)

#开始监听鼠标事件

hm.HookMouse()

#一直监听直到退出程序

pythoncom.PumpMessages()

capture()

三效果展示

截图效果:

转文字效果:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132551.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
django 学习笔记三
拦截到url 后,通过拦截到的URL和 request 做一些不同的响应(response)
onety码生
2018/11/21
4840
Django2.2帮助文档的第一个例子:一个简易的投票系统—Prat1_2
https://docs.djangoproject.com/en/2.2/intro/tutorial01/
用户7010445
2020/03/03
5630
Python-Django 第一个Django app
下载地址:https://www.python.org/downloads/release/python-340/
授客
2019/09/11
1.3K0
Python-Django 第一个Django app
django2.0入门教程第三节
继上篇django2.0入门教程第二节,介绍了对django2.0模型类models的操作,本篇主要讲视图views和模板template django的视图用于处理url请求,并将响应的数据传递到模板,最终浏览器将模板数据进行渲染显示,用户就得到了想要的结果 作为一个简易的投票系统, 除了index(主页), 还需要detail(详情页), results(结果页), vote(投票页) 这些视图。 增加视图:polls/views.py #_*_coding:utf8_*_ from django.sh
章鱼喵
2018/06/21
6940
Django学习笔记 1.4 表单和通用视图
更新一下在上一个教程中编写的投票详细页面的模板 (“polls/detail.html”) ,增加一个 HTML 元素:
twowinter
2020/04/17
8490
基于Django1.11和Python3
a. 先在VotingSystem项目目录下新建一个templates文件夹,注意文件夹权限和属组
py3study
2020/01/03
5150
Django2.2帮助文档的第一个例子:一个简易的投票系统—Prat3_4
https://docs.djangoproject.com/en/2.2/intro/tutorial01/
用户7010445
2020/03/06
5770
Django快速入门——投票程序(3)视图
原教程说的比较抽象,这里简单认为视图就是views.py中的函数,用于处理数据并渲染网页。我们的投票应用中,需要下列几个视图:
一只大鸽子
2023/09/02
3360
Django快速入门——投票程序(3)视图
Django来敲门~第一部分【6.1 视图函数】
在我们创建好的应用polls/中,可以定义视图函数,专门用于接收和响应URL请求操作的函数; 该函数默认第一个参数接收的就是一个请求对象HttpRequest,通常我们会将第一个参数写成request;函数后面的其他参数就是可以从URL路径中接收的参数数据了。
大牧莫邪
2018/08/27
2890
First Django App!
  上篇笔记从零创建了一个django项目,一个项目肯定是由多个模块组成的,比方说一个电商项目,包括支付模块,商品展示模块,商家用户聊天模块等等,这些模块便可称之为一个应用。
小孙同学
2022/01/17
2.2K0
First Django App!
django2.0入门教程第四节
继上篇 django2.0入门教程第三节,介绍了django2.0的视图views和模板template, 本节介绍如何在前台进行投票。 构建一个简单的表单提交页 polls/templates/polls/detail.html <h1>{{ question.question_text }}</h1> {% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %} <form action="{%url 'pol
章鱼喵
2018/06/27
8300
七日Python之路--第三天(之初试Django 2-2)
接上文。前面(1)(2)部分已经实现浏览器访问工程项目,并且能后台管理新创建的app。
lpe234
2020/07/27
3810
Django快速入门——投票程序(1、2)创建项目&模型
让我们开始Django文档教程中的投票案例吧。 可以在https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial01/ 查看原教程。
一只大鸽子
2023/09/02
4130
Django快速入门——投票程序(1、2)创建项目&模型
Django 学习笔记 1.3 视图和模板
前一节是后端的内容,这一节则是前端的内容,我们将继续编写投票应用,并且专注于如何创建公用界面——也被称为“视图”。
twowinter
2020/04/17
1.3K0
Django 1.10中文文档-第一个应用Part3-视图和模板
目录[-] 本教程上接Django 1.10中文文档-第一个应用Part2-模型和管理站点。我们将继续开发网页投票这个应用,主要讲如何创建一个对用户开放的界面。 概览 视图是Django应用中的一“类”网页,它通常使用一个特定的函数提供服务,并且具有一个特定的模板。例如,在博客应用中,可能有以下视图: 博客首页 —— 显示最新发表的博客; 博客“详细”页面 —— 每博客的链接页面; 基于年份的归档页面 —— 显示特定年内所有月份发表过的博客; 基于月份的归档页面 —— 显示特定月份内
jhao104
2018/03/20
2.5K0
七日Python之路--第五天(之Django官方文档)
之前一直使用Django自带的SQLite3数据库,感觉挺爽的,啥都不用管。但是,学习岂能贪图便利。遂开始使用MyQL。但是似乎不太顺利。首先在新建的项目mysite下,修改 settings.py 根配置文件。
lpe234
2020/07/28
3530
django2.0入门教程第二节
继上篇 django2.0入门教程第一节,生成了投票应用,接下来讲解如何使用django的模型与数据库进行交互 数据库设置 打开mysite/settings.py,可看到默认情况下,django使用的是sqlite3数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } 本教
章鱼喵
2018/06/27
7420
Django来敲门~第一部分【5.2.模型和数据库交互】
通常情况下,如果你只是做测试使用,可以使用Django内置的数据库SQLite就完全可以满足需要了,我们在本次教程中,通过使用MySQL这个数据库来完成后续的功能操作
大牧莫邪
2018/08/27
4820
Django 1.10中文文档-第一个应用Part4-表单和通用视图
目录[-] 本教程接Part3开始。继续网页投票应用程序,并将重点介绍简单的表单处理和精简代码。 一个简单表单 更新一下在上一个教程中编写的投票详细页面的模板polls/detail.html,让它包含一个HTML<form> 元素: # polls/templates/polls/detail.html <h1>{{ question.question_text }}</h1> {% if error_message %}<p><strong>{{ error_message }}</stron
jhao104
2018/03/20
2.5K0
django 学习笔记一
文件里面配置了 DJANGO_SETTINGS_MODULE,也就是 设置(setting.py) 的路径
onety码生
2018/11/21
1.1K0
相关推荐
django 学习笔记三
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档