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

python截图识别文字_python截图并转换文字「建议收藏」截图识别文字作者万开国[acewan]【摘要】本文主要介绍了使用pyHook、pythoncom、pytesseract、PIL、win32api等module实现python的截图识别文字功能。【正文】一准备及介绍1.pyhookpyHook通过pip直接安装比较困难,可以先下载whl文件再使用pip安装选择与python环境一致的文件下载,使用cmd导向到下载文件夹,执行安装即可其他modul…

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

截图识别文字

作者

万开国[acewan]

【摘要】

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

【正文】

一准备及介绍

1.pyhook

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

018541image.png

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

008378image.png

其他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()

三效果展示

截图效果:

090991image.png

转文字效果:

082502image.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm 自动换行_pycharm一行太长快捷换行

    pycharm 自动换行_pycharm一行太长快捷换行只对当前文件有效的操作是菜单栏->View->ActiveEditor->UseSoftWraps。要是想对所有文件都起到效果,就要在setting里面进行操作。Perferences-Editor-General->Usesoftwrapsinconsole。

    2022年8月25日
    9
  • 【mySQL】mysql数据库分页查询讨论专题

    【mySQL】mysql数据库分页查询讨论专题MySQL:limit分页公式、总页数公式1)limit分页公式(1)limit分页公式:curPage是当前第几页;pageSize是一页多少条记录limit(curPage-1)*pageSize,pageSize(2)用的地方:sql语句中select*fromstudentlimit(curPage-1)*pageSize,pageSize;2)…

    2022年5月31日
    28
  • 如何架设邮件服务器

    很多企业局域网内都架设了邮件服务器,用于进行公文发送和工作交流。但使用专业的企业邮件系统软件需要大量的资金投入,这对于很多企业来说是无法承受的。其实我们可以通过WindowsServer2003提供的POP3服务和SMTP服务架设小型邮件服务器来满足我们的需要。  一、安装POP3和SMTP服务组件  WindowsServer2003默认情况下是没有安装POP3和SMTP服务组件

    2022年4月7日
    53
  • 光纤交换机如何划分zone[通俗易懂]

    光纤交换机如何划分zone[通俗易懂]说明:1.不同厂商的光纤交换机zone的划分类似,所以只要掌握了一种其他则可以触类旁通。2.如果想使用图形界面对光纤交换机划分zone,在pc端必须安装javawebstart,初次访问阵列它会提示下载地址。一.规划在对光纤交换机进行设置前,一定要做好相应的规划,比如那些端口要连接主机,那些端口要连接阵列,考虑到减少“乒乓效应”及平衡负载,当我们划分zone时最好用一对一关系,即一个zone只接一个主机一个阵列,而不是划分一个大的zone阵列主机都插…

    2022年5月11日
    49
  • 遗传算法的应用实例python实现_python遗传算法库

    遗传算法的应用实例python实现_python遗传算法库遗传算法遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。问题引入上面提到遗传算法是用来解决最优化问题的,下面我将以求二元函数:defF(x,y): return3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)-10*(x/5-x**3……

    2022年9月23日
    4
  • 2.5D RGBD 图像 深度学习

    2.5D RGBD 图像 深度学习RGBD=RGB+DepthMapRGB:RGB色彩模式是工业界的一种颜色标准,是通过对红®、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。DepthMap:在3D计算机图形中,DepthMap(深度图)是包含与视点的场景对象的表面的距离有关的信息的图像或图像通道。其中,DepthMap类似于灰度图像,只是它的每个像素值是传感器

    2026年1月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号