python截图识别文字代码_10几行代码,用python打造实时截图识别OCR

你一定用过那种“OCR神器”,可以把图片中的文字提取出来,极大的提高工作效率。

今天,我们就来做一款实时截图识别的小工具。顾名思义,运行程序时,可以实时的把你截出来的图片中的文字识别出来。、

下次,当你想要复制“百度文库”中的内容时,不妨试试这个程序。

效果预览

源码解析

1)等待用户截图

此处需要借助贴图神器(Snipaste)

其中“f1”是截图的快捷键,“ctrl+c”是把截图保存到剪贴板的快捷键。

如果使用qq截图的话,需要把快捷键改为对应的“ctrl+alt+c”和“enter”

顺便安利一波Snipaste,

必备效率神器

importkeyboard

# 利用截图软件(Snipaste)截图到剪贴板

# 输入键盘的触发事件

keyboard.wait(hotkey="f1")

keyboard.wait(hotkey="ctrl+c")

time.sleep(0.1)

上面这段代码执行之后,现在已经有一张图片等待在剪贴板里了。

2)保存截图

利用PIL模块的ImageGrab,可以把剪贴板里的那张图片,保存到当前的目录下,并命名为“screen.png”

fromPILimportImageGrab

# 把图片从剪切板保存到当前路径

image = ImageGrab.grabclipboard()

image.save("screen.png")

3)识别截图中的文本

法一

pytesseract模块

优点:免费,易用

缺点:识别效果很一般,准确率不高

使用方法介绍:

1)pip install pytesseract

2)安装 tesseract-ocr.exe 配置环境变量

3)修改pytesseract.py文件,将tesseract_cmd指向Tesseract-OCR的tesseract.exe的绝对路径。

参考文章

见评论第一条

importpytesseract

fromPILimportImage

# 法一:利用pytesseract模块

# 参数一:图片

# 参数二:简体中文

text = pytesseract.image_to_string(Image.open("screen.png"), lang='chi_sim')

print(text)

来看看效果:

low的不行

果然,要想精度高,还得用百度API

法二

百度API接口

AI开放平台文档中心

https://ai.baidu.com/ai-doc

查看python语言的SDK文档

点击右上角(控制台),登录自己的百度账号,创建“文字识别”的应用

importpytesseract

fromaipimportAipOcr

fromPILimportImageGrab

# 法二:利用百度API

APP_ID ='你的 App ID'

API_KEY ='你的 Api Key'

SECRET_KEY ='你的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 读取图片

withopen("screen.png",'rb')asf:

image = f.read()

# 调用百度API通用文字识别(高精度版),提取图片中的内容

text = client.basicAccurate(image)

result = text["words_result"]

foriinresult:

print(i["words"])

结果

如文章首图:

我是总结

1)等待用户截图

2)保存截图到当前目录

3)识别截图中的文本

其中识别截图文本,有两种方法:

1)利用 pytesseract 模块

2)利用百度API接口

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的世界java 内存_我的世界如何分配内存

如果你在运行Minecraft时出现内存错误等问题,你可能需要给Minecraft分配更多内存来解决运行故障。如果你玩的是新版本的Minecraft,那么你可以从启动器里直接分配内存(RAM)。如果你使用的是旧版本,那么你需要创建一些文件来改变Minecraft内存使…

python数据拟合固定参数_如何将数据拟合到非理想二极管方程(隐式非线性函数)并检索参数 - python...

散乱数据图我需要将(x,y)-数据拟合到具有两个变量(x和y)的方程式中,并检索5个未知参数。我正在编写一个脚本,以处理来自简单.txt文件的IV数据(电流电压),并将其拟合为称为非理想二极管方程的方程;这是一个隐式非线性函…

java学生签到系统视频教程_手把手教你做一个Java web学生信息、选课、签到考勤、成绩管理系统附带完整源码及视频开发教程...

四个阶段的Java web学生信息系统视频教程终于录制完成了,系统用到的知识点有:jspservletmysqljqueryajax,前端采用的是当下最流行的easyui管理框架,全部采用面向接口的MVC三层设计模式,是大家学习Java web实战项目不可…

python做网络的仿真_用python自动化仿真HFSS,超简易

python是一款适用性极强的编程语言。一直期待HFSS(三维全波电磁场仿真的行业标准)能有python接口。后知后觉的本人才发现原来HFSS16(2015版本)已经不止支持VB脚本,还增加了python支持,当然它用的是Ironpython,基于.NET,和Cpython还…

为什么网格布局不显示java_java – 在GridLayout中不显示组件的FlowLayout?

我正在创建一个应用程序,作为某种类型的中心,用户可以将快捷方式存储到他们喜欢的应用程序并轻松启动它们.不过,我在使用FlowLayout时遇到了一些问题.当我使用GridLayout时,组件显示完美.当我使用FlowLayout时,根本没有任何显示.网格布局:FlowLayout中:我…

python爬取qq音乐歌词风变编程_爬取QQ音乐歌词

#!/usr/bin/env python3# -*- coding: utf-8 -*-# DESC: 爬取歌手前3页歌曲的歌词都爬取下来,并按歌名分别保存# Date: 2020-05-21import requestsimport re,osos.makedirs(music,exist_okTrue)## 添加请求头headers {user-agent:Mozilla/5.0 (Windows …

php post请求后端拿不到值_Ajax 提交POST后,后台php 无法获取$POST值

当 contentType 为 application/x-www-form-urlencoded 时(默认值)才能用 $_POST 得到传入的数据。但是使用 application/json;charsetutf-8不是 php 所能识别的类型声明,不能替你解析。所以只能用 php://input 取得,并用 parse_str 自行解析而形如 a1&a…

springbean的生命周期_spring bean生命周期(涵盖spring常用接口的载入)

spring bean生命周期流程图:​​​​其中包含了很多常用的接口,可以参考spring 常用接口;下面写个例子证明下:1.实现InitializingBean以及各个Aware接口public class UserB implements InitializingBean , BeanFactoryAware , Bea…

python中的索引从几开始计数_计算机为什么要从 0 开始计数?

作者:程序喵大人来源:程序喵大人大家好,我是猫哥!众所周知,计算机是从0开始计数,而不是我们平时常用的从1开始计数,但你有想过为什么吗?其实不是计算机从0开始计数而是多数编程语言中…

python os.environ windows_python 获取系统环境变量 os.environ and os.putenv

从一段code说起 “if "BATCH_CONFIG_INI" in os.environ:” 判断环境变量的值有没有定义如果定义的话就去环境变量的值,否则就取当前目录下的config.ini文件。if "BATCH_CONFIG_INI" in os.environ:print "Using custom ini file!"se…

coreos 安装mysql_如何执行CoreOS Linux的裸机安装

本文将介绍如何在裸机服务器上加载CoreOs Linux。关于在计算机上安装CoreOS Linux的更多方法。在本文中,我们将首先启动一些Live Linux发行版。从USB或CDROM提取Fedora,然后使用CoreOS的安装脚本在给定的硬盘驱动器上执行实际的CoreOS Linux。您将需要什…

python selenium截图_python+selenium截图操作样例

# -*- coding:utf-8 -*-# explain : 截图操作import os, timeclass Picture:"""截图操作分为正常的操作截图truepicture和异常的操作截图errorpicture"""def __init__(self, driver, path):""":type driver: selenium.webdriver.…

java环形队列测试,JAVA数据结构之循环队列的实现

1、循环队列CircleQueue类的实现代码如下所示:public class CircleQueue {private Object[] array;private int capacity;//队列容量private int count;//队列中元素的个数private int front;private int rear;public CircleQueue(int capacity){this.capacity cap…

websocket 发送图片_基于WebSocket的web端IM即时通讯应用的开发

基于WebSocket的web端IM即时通讯应用的开发功能列表:1、Web端的IM即时通讯应用2、支持上线、下线、实时在线提醒3、单聊、群聊的建立4、普通文字、表情、图片的传输(子定义富文本)5、单人的顶级提醒,多对话的窗口的提醒6、调用图灵机器人的自动回复演示目…

php处理结果集,php中mysqli 处理查询结果集的几个方法

最近对php查询mysql处理结果集的几个方法不太明白的地方查阅了资料,在此整理记下Php使用mysqli_result类处理结果集有以下几种方法fetch_all()抓取所有的结果行并且以关联数据,数值索引数组,或者两者皆有的方式返回结果集。fetch_array()以一…

python gamma函数_python gamma矫正

这个函数,主要用来做对比度调整,利用 gamma 曲线 或者 log 函数曲线,gamma 函数的表达式: yxγ, 其中, x 是输入的像素值,取值范围为 [0−1], y 是输出的像素值,通过调整γ 值,改变…

ios 支付验证 php,PHP验证IOS原生支付是否成功(代码全篇)

前言IOS原生支付后,需要调用服务端接口进行验证,检测是否真正的支付成功!class ApplePay{/** 环境配置(建议提成配置)* var bool*/private $sandbox false ;/** result as json* param int $code* param string $msg* param array $data* return string*/private function jso…

python自动化输入不了中文_appium+python自动化61-中文输入乱码问题解决

前言在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决。 打开手机设置语言和输入法,发现找不到Appium Android Input Manager for Unicode输入法导致的 相关环境:appium1.8…

PHP定时抽奖怎么实现的,PHP 实现抽奖逻辑

public static function get_rand($proArr) {$result "";//概率数组的总概率精度$proSum array_sum($proArr);//概率数组循环foreach ($proArr as $key > $proCur) {$randNum mt_rand(1, $proSum);if ($randNum < $proCur) {$result $key;break;} else {$p…

绿盟漏洞扫描_主机安全漏洞解决方案

前几天发了一篇等保2.0的文章(等保2.0简单介绍 )&#xff0c;文章里面提到&#xff0c;相比于等保1.0标准&#xff0c;等保2.0很大幅度上对安全通用要求的一些控制项做了大幅精简&#xff0c;但是等保二级的要求仍多达135项、等保三级多达211项。https://mp.weixin.qq.com/s/kE…