python截图识别文字_用百度ocr+微信截图实现文字识别

作用:将图片中的文字识别出来

一、调用微信截图dll控件

将微信截图插件复制到项目文件,使用ctypes加载(胶水语言就是给力)

def capture():

try:

dll = ctypes.cdll.LoadLibrary('PrScrn.dll')

except Exception:

print("Dll load error!")

return

else:

try:

dll.PrScrn(0)

except Exception:

print("Sth wrong in capture!")

return

二、编写自己的百度ocr类,参考百度文档

class BaiduApi(object):

def __init__(self, filePath):

""""初始化加载账户信息 """

super(BaiduApi, self).__init__()

conf = ConfigParser()

conf.read(filePath)

app_id = conf.get("user_info", "appid")

app_key = conf.get("user_info", "app_key")

secrity_key = conf.get("user_info", "secrity_key")

self.client = AipOcr(app_id, app_key, secrity_key)

""" 读取图片 """

@staticmethod

def get_file_content(filePath):

with open(filePath, 'rb') as fp:

return fp.read()

def imagetotext(self, filePath):

image = self.get_file_content(filePath)

self.texts = self.client.basicGeneral(image)

ret = ""

for words in self.texts["words_result"]:

ret = ret + "".join(words.get("words", ""))

print(ret)

三、利用PIL将微信截图保存到临时目录

注:原本想直接调用api做ocr识别,却提示类型错误 baidu_info.ini为自己的appid信息

ImageGrab.grabclipboard() 获取剪切板上的图片并保存到目录

a = BaiduApi("./baidu_info.ini")

capture()

img = ImageGrab.grabclipboard()

img.save("./123.png")

a.imagetotext("./123.png")

四、效果展示(识别率还是很让人满意滴)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

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

相关文章

【用jQuery来判断浏览器的类型】及【javascript获取用户ip地址】

用jQuery来判断浏览器的类型,主要是使用$.browser这个工具类,使用方法: $.browser.[浏览器关键字] //谷歌浏览器、360浏览器等其他一些浏览器,没有专门的判断 function appInfo() {var bro $.browser;var binfo "";if (bro.msie) {binfo "Micr…

linux mv 递归拷贝,奇技淫巧 - 给Linux中的cp和mv命令中添加进度条的高级拷贝

GNU cp和GNU mv命令用于在GNU/Linux操作系统中复制和移动文件和目录。这两个命令缺少的一个特性是它们不显示任何进度条。如果复制一个大文件或目录,您就不知道完成复制过程需要多长时间,也不知道复制的数据所占的百分比。还有您将看不到当前正在复制哪个…

【洛谷P1966】火柴排队

两列排序后将编号一一对应 归并排序求逆序对 &#xff08;每一次交换就去掉一个逆序对&#xff09; 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #define ll long long5 using namespace std;6 const int N100100;7 const ll P99999997;8 …

Alan Walker MV 合辑01 by defender

Alan Walker MV合辑 出来啦&#xff01; 百度网盘下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/10WSool70XBe_8tJOae8V-w 提取码&#xff1a;uckq 地址查看Microsoft Onedrive Download Address:  BE DELETED Google Drive Download Address&#xff1a; …

在unity中设置多种怪物数据_Unity可编程渲染管线(SRP)系列(三)——光照(单通道 正向渲染)...

本文重点:1、漫反射着色2、支持方向光、点光源和聚光灯3、每帧允许16个可见光源4、每个对象最多计算四个像素光和四个顶点光这是涵盖Unity可编写脚本的渲染管线的教程系列的第三部分。这次&#xff0c;我们将通过一个Drawcall为每个对象最多着色8个灯光来增加对漫反射光照的支持…

蛋清打发奶油状

在做蛋糕、冰淇凌、面包之类的时候往往都需要奶油状蛋清&#xff0c;让蛋糕、面包更蓬松&#xff0c;冰激凌也可以使用其当做奶油来用。用料 鸡蛋4个 根据用量选择盐(只做冰激凌用奶油放)5g(根据蛋量)白醋(可以不放&#xff0c;根据喜好)5g(根据蛋量)白砂糖40g(分三次放)根据…

hql可以使用distinct吗_输送食品可以使用白色PVC输送带吗?

食品&#xff0c;是给人们吃到肚子里的&#xff0c;因此不管在加工环节、制造环节还是其他环节&#xff0c;都需要做好食品的安全问题。根据不同的食品&#xff0c;其制造的环境也不同&#xff0c;所使用到的食品输送带的材质也是不一样的&#xff0c;这些是需要根据输送的食品…

htc one m7 linux驱动,HTC One M7官方RUU固件包(可救砖)

在网上找了找关于HTC One M7 (801e)的官方ruu固件包还不多&#xff0c;找了一些&#xff0c;不过有些不能下载&#xff0c;在这里整理了几款可以下载的官方ruu包&#xff0c;这些包都是官方原版的&#xff0c;都是支持线刷的&#xff0c;大家可以下载下来备用了&#xff0c;也可…

c语言fmin最小公倍数,matlab小函数

8种机械键盘轴体对比本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f;(记得按字母序索引)矩阵向量化操作A(:)拉成一个向量 ($a_{11},a_{21},…$)&#xff0c;注意先列后行repmat用途&#xff1a;创建由小型矩阵重复组合成的矩阵&#…

报表系统的雄心

这周有朋自远方来&#xff0c;聊了对报表工具的看法&#xff0c;因此专门写篇文章来谈谈报表系统的未来。 笔者知道不可能有十全十美的报表系统&#xff0c;毕竟任何一个行业和企业受自身客观环境的限制&#xff0c;但表哥嘛&#xff0c;总要有点理想和追求&#xff0c;就好比到…

vuefullcalendar怎么判断切换上下月_房间太多、楼上楼下,终极解决家里wifi信号无缝切换问题...

相信不少人有我一样的烦恼&#xff0c;房间太多&#xff0c;或者楼上楼下&#xff0c;家里的wifi信号总是不能无缝切换。路由器放在配电箱&#xff0c;除了客厅信号不错外&#xff0c;一旦到了其他房间&#xff0c;掉线、网速慢等问题让人很苦恼。特别是和小伙伴一起玩游戏一边…

手把手教你 Spark 性能调优

0、背景 集群部分 spark 任务执行很慢&#xff0c;且经常出错&#xff0c;参数改来改去怎么都无法优化其性能和解决频繁随机报错的问题。 看了下任务的历史运行情况&#xff0c;平均时间 3h 左右&#xff0c;而且极其不稳定&#xff0c;偶尔还会报错&#xff1a; 1、优化思路 任…

pytorch线性回归代码_[PyTorch 学习笔记] 1.3 张量操作与线性回归

本章代码&#xff1a;https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/linear_regression.py张量的操作拼接torch.cat()torch.cat(tensors, dim0, outNone)功能&#xff1a;将张量按照 dim 维度进行拼接tensors: 张量序列dim: 要拼接的维度代码示例&#…

《UNIXLinux程序设计教程》一2.1 UNIX 输入输出基本概念

2.1 UNIX 输入输出基本概念 在任何一种操作系统中&#xff0c;程序开始读写一个文件的内容之前&#xff0c;必须首先在程序与文件之间建立连接或通信通道&#xff0c;这一过程称为打开文件。打开一个文件的目的可能是要读其中的数据&#xff0c;也可能是要往其中写入数据&…

c语言编常见算法,5个常见C语言算法

5个常见C语言算法十进制转换为二进制的递归程序字符串逆置的递归程序整数数位反序&#xff0c;例如12345->54321四舍五入程序(考虑正负数)二分法查找的递归函数#include#include#include//十进制转换为二进制的递归程序voidDecimalToBinary(int n){if(n<0){printf("…

利用Kinect将投影变得可直接用手操控

Finally 总算是到了这一天了&#xff01;假期里算法想不出来&#xff0c;或者被BUG折磨得死去活来的时候&#xff0c;总是YY着什么时候能心情愉快地坐在电脑前写一篇项目总结&#xff0c;今天总算是抽出时间来总结一下这神奇的几个月。 现在回过头来看&#xff0c;上学期退出AC…

springboot自动配置的原理_SpringBoot自动配置原理

SpringBoot的启动入口就是一个非常简单的run方法&#xff0c;这个run方法会加载一个应用所需要的所有资源和配置&#xff0c;最后启动应用。通过查看run方法的源码&#xff0c;我们发现&#xff0c;run方法首先启动了一个监听器&#xff0c;然后创建了一个应用上下文Configurab…

Django first lesson 环境搭建

pycharm ide集成开发环境 &#xff08;提高开发效率&#xff09; 解释器/编译器编辑器调试环境虚拟机连接 设置VirtualBox端口 操作1 操作2 点击号添加&#xff0c;名称为SSH&#xff0c;其中主机端口为物理机的端口&#xff0c;这里设置为1234&#xff0c;子系统端口为虚拟机的…

《Drupal实战》——3.3 使用Views创建列表

3.3 使用Views创建列表 我们接着讲解Views的设置&#xff0c;首先做一个简单的实例。 3.3.1 添加内容类型“站内公告” 添加一个内容类型“站内公告”&#xff0c;属性配置如表3-1所示。 为该内容类型设置Pathauto的模式news/[node:nid]&#xff0c;并且我们在这里将节点类型…

idea mybatis generator插件_SpringBoot+MyBatis+Druid整合demo

最近自己写了一个SpringBootMybatis(generator)druid的demo1. mybatisgenerator逆向工程生成代码1. pom文件pom文件添加如下内容&#xff0c;引入generator插件org.mybatis.generator mybatis-generator-maven-plugin 1.3.5 mysql …