Python实现简单截图识别获取文字符号信息[通俗易懂]

Python实现简单截图识别获取文字符号信息[通俗易懂]版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/weixin_42365530有时候我们百度出来一些自己需要信息后,想要直接复制粘贴(借鉴借鉴),提升工作效率,比如学校要求写什么加油稿,期末总结,思想汇报啊…额~,被请去办公室喝茶了,到时别说是博主教的啊!但是百度文库经常会限制我们复制…

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


在这里插入图片描述

前言

  有时候我们百度出来一些自己需要信息后,想要直接复制粘贴(借鉴借鉴),提升工作效率,比如学校要求写什么加油稿,期末总结,思想汇报啊…额~,被请去办公室喝茶了,到时别说是博主教的啊!但是百度文库经常会限制我们复制的字数量,复制达到一定字数时便被限制,要开VIP,so,自己就用Python写了几行小程序,可以利用电脑自带的截图工具(其他任意截图工具也可以),获取到所截图片中的所有文字符号信息,然后就可以Ctrl+C,Ctrl+V 了你们懂的…把程序封装成一个桌面程序再使用,就不用每次都要打开Python编译器啦,不会封装成桌面程序的在这篇博客后面,博主会教大家哦!


运行效果

在这里插入图片描述


先上源码

'''大体思路'''
#1、图片的截取,并保存
#2、使用第三方的SDK识别图片上的文字

#导入keyboard框架
import keyboard     #安装: pip install keyboard
from PIL import ImageGrab   # pip install pillow
import time
from aip import AipOcr
#安装使用Python SDK有如下方式:1、如果已安装pip,执行pip install baidu-aip即可。
# #2、如果已安装setuptools,执行python setup.py install即可。

#文字识别,结合百度AI SDK来进行使用

""" 你的 APPID AK SK """
APP_ID = '你自己创建的 App ID'
API_KEY = '你自己创建的 Api Key'
SECRET_KEY = '你自己创建的 Secret Key'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)


while 1:
    # 截取图片(截图软件)
    keyboard.wait(hotkey='ctrl+alt+s')
    keyboard.wait(hotkey='ctrl+a')

    time.sleep(0.1)

    # 保存图片到电脑
    image = ImageGrab.grabclipboard()
    image.save('WzTp.jpg')

    """ 读取图片 """
    # def get_file_content(filePath):
    # with open(filePath, 'rb') as fp:
    # return fp.read()

    # image = get_file_content('WzTp.jpg')

    """ 调用通用文字识别(含位置高精度版) """
    # client.accurate(image);

    with open('WzTp.jpg', 'rb') as file:
        image = file.read()

        text = client.basicAccurate(image)
        res = text['words_result']
        for i in res:
            print(i['words'])

分析实现

  代码中用到了识别文字的第三方的SDK,SDK获取方法如下:百度搜索“百度AI开放平台”进入官网,或者点击该链接https://ai.baidu.com/直接进入,依次选择开放能力→文字识别→通用文字识别→立即使用→登录自己的百度账号(没有账号的需要自己注册一个)→点击创建应用,额~以下步骤不方便文字描述,还是看博主巨详细的图片步骤吧
有的信息涉及到我个人信息,所以打码了,望理解(o´ω`o)ノ


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


""" 你的 APPID AK SK """
APP_ID = '你自己创建的 App ID'
API_KEY = '你自己创建的 Api Key'
SECRET_KEY = '你自己创建的 Secret Key'

  把代码中的上面三项改成你自己申请创建的SDK,就可以运行啦,不信你自己试试 ̄へ ̄当然,你的pycharm编译环境没有安装有程序中用到的框架(库)的话程序是会报错的,自己pip安装一下就好了,还有就是我的截图工具快捷键是ctrl+alt+s,你们要把下面这段程序中打开截图工具的快捷方式,改成你自己的,keyboard.wait(hotkey='ctrl+a')语句是获得截取图片中的文字信息,不喜欢Ctrl+a的也可以改成其他按键获取

# 截取图片(截图软件)
keyboard.wait(hotkey='ctrl+alt+s')
keyboard.wait(hotkey='ctrl+a')

  好了,刚刚答应教大家将程序打包成可以直接点击运行的桌面程序了(已经会的同学可以鄙视我一会啊,(ー̀дー́)此处本博主小声bb了好久)开始吧,开始啦,准备啦,此时希望我别那么多废话的同学,你气不气[]( ̄▽ ̄)~*


将Python程序打包成.exe桌面应用程序

  首先将完成的python工程打包成exe应用程序,需要用到pyinstaller模块,编译器还没有这个模块的同学,在控制台的【Terminal】pip install pyinstaller安装一下就好了
开始打包了:
在【Terminal】中输入下面代码(XXXX是你的这个Python程序名)

pyinstaller -F XXXX.py

附参数集合:

–icon=图标路径(pyinstaller -F –icon=my.ico XXXX.py)
-F 打包成一个exe文件
-w 使用窗口,无控制台
-c 使用控制台,无窗口
-D 创建一个目录,里面包含exe以及其他一些依赖性文件
在这里插入图片描述
  打包成功的话,在你项目文件夹下的【dist】文件夹下,就可以找到生成的.exe应用程序啦
在这里插入图片描述
在这里插入图片描述
  然后就可以随时双击.exe程序使用“截图取字”啦,有的同学可能会说QQ其实有自带的识别图片中的文字功能,或者其他我还不知道的方法,但这个主要是对刚学习Python没多久的同学练练手,是大佬的请忽略啊✧(^_-✿ ),还有就是这个只能是在电脑上使用的哦,还有什么不太清楚的,欢迎留言哦。


关于博主(我)(◍´꒳`◍)

  这是我上大学学习软件工程专业以来,人生第一篇博客,最近要准备一个软件测试大赛(期望获得好成绩),近期可能没有时间更博了,第一次写博客不太会用这个东东,像写作文一样,表达不好大家见谅!
已经大三了,程序员这条路不知道自己能不能走下去,2019.11.10 21:02这也是个值得纪念的时间,希望三年后,来看这篇博客时自己已经有所为了吧!

  学习更多的编程知识,获取我博客中的源码和寻找编程之外的乐趣,欢迎小伙伴入坑我的公众号编程之外,互相监督一起成长!??
在这里插入图片描述

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

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

(0)
上一篇 2022年5月20日 下午2:20
下一篇 2022年5月20日 下午2:40


相关推荐

  • MyBatis学习4—使用MyBatis_Generator生成Dto、Dao、Mapping

    MyBatis学习4—使用MyBatis_Generator生成Dto、Dao、Mapping由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。一、建立表结构CREATETABLE`user`(`id`varchar(50)NOTNULL,`username`varchar(18)CHAR

    2022年10月20日
    5
  • Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space 解决方法

    Idea运行项目报错:java.lang.OutOfMemoryError: Java heap space 解决方法问题描述使用 idea 运行代码量比较多的项目时 会报错 java lang OutOfMemoryE Javaheapspac 问题处理这个显而易见时堆内存溢出 首先想到的时 tomcat 的内存分配太小了 调整 Idea 的内存分配 Help gt EditCustomVM gt 将配置改为以下内容 server Xms512m JVM 启动时分配的内存 Xmx1024m JVM 运行时内存 XX ReservedCode 300m X

    2026年3月20日
    5
  • lcd1602模块的基本组成_1602液晶显示模块P0口

    lcd1602模块的基本组成_1602液晶显示模块P0口LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。下图即是该模块:(百度百科)一般来说,在嵌入式开发领域显示模块是非常重要的一部分,所以发展出了许多种应用在不同场合的集成显示模块。LCD1602由于出现较早,所以即便出现了应用更广泛的、…

    2026年2月20日
    4
  • 高级shell脚本编程指南_python的快速入门

    高级shell脚本编程指南_python的快速入门文章目录1.shell简介 1.1什么是shell 1.2shell脚本 1.3运行shell脚本 1.4shell注释 1.5shell编写的基本步骤 2.shell变量 2.1命名变量 2.2使用变量 2.3变量类型 2.4变量操作 3.shell字符串 3.1字符串类型 3.2字符串操作 4.shell数组 4.1定义数组 4.2数组操作 5.shell传递参数 6.shell运算符

    2022年10月3日
    5
  • 高等数学–集合概念

    高等数学–集合概念集合概念 所谓集合 简称集 是指具有某种特定性质的事物的总体 组成该集合的事物称为该集合的元素 简称元 集合通常用拉丁大写字母表示 例如 A B C 集合的元素通常用小写拉丁字母表示 例如 a b c a 是集合 A 的元素 就说 a 属于 A 记作 a 不是集合 A 的元素 就说 a 不属于 A 记作 一个集合只含有限个元素 称为有限集 不是有限集的集合称为无限集 集合的表示方法 1 列举法把集合的全体元素一一列举出来 A a1a2 an

    2026年3月19日
    2
  • 手机连接服务器工具Termius使用<IOS版本>

    手机连接服务器工具Termius使用<IOS版本>

    2021年5月31日
    127

发表回复

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

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