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

用百度ocr+微信截图实现文字识别作用:将图片中的文字识别出来一、调用微信截图dll控件将微信截图插件复制到项目文件,使用ctypes加载(胶水语言就是给力)defcapture():try:dll=ctypes.cdll.LoadLibrary(‘PrScrn.dll’)exceptException:print(“Dllloaderror!”)…

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

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

一、调用微信截图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")

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

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

转载于:https://blog.51cto.com/5353088/2119501

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

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

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


相关推荐

  • 一文详解scp命令

    一文详解scp命令

    2022年2月19日
    156
  • ExtJs formGrid submit

    ExtJs formGrid submit

    2021年8月17日
    49
  • linux卸载wine qq,ubuntu安装wineQQ

    linux卸载wine qq,ubuntu安装wineQQUbuntu系发行版安装deepinwineQQ的步骤第1步,安装deepin-wine环境:上https://github.com/wszqkzqk/deepin-wine-ubuntu页面下载zip包(或用git方式克隆),解压到本地文件夹,在文件夹中打开终端,输入sudosh./install.sh一键安装。一些小问题的解决方法0,安装之后找不到在哪里启动:安装完deepin.com…

    2022年9月6日
    3
  • getopt在Python中的使用

    getopt在Python中的使用在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能。目前有短选项和长选项两种格式。短选项格式为”-“加上单个字母选项;长选项为”–“加上一个单词。长格式是在Linux下引入的。许多Linux程序都支持这两种格式。在Python中提供了getopt模块很好的实现了对这两种用法的支持,而且使用简单。取得命令行参数  在使用之前,首先要取得命令行参数。使用sys模块

    2022年4月30日
    41
  • POSIT算法的原理–opencv 3D姿态估计[通俗易懂]

    POSIT算法的原理–opencv 3D姿态估计[通俗易懂]3D姿态估计-POSIT算法 POSIT算法,PosefromOrthographyandScalingwithIterations, 比例正交投影迭代变换算法:用于估计物体的3D姿态(相对于镜头的平移和旋转量)。算法正常工作的前提是物体在Z轴方向的“厚度”远小于其在Z轴方向的平均深度,比如距离镜头10米远的一张椅子。 算法流程:假设待求的姿态,包括旋转矩阵R和

    2022年10月23日
    0
  • 软件工程概论题库「建议收藏」

    一、选择题:1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)。A.软件工程 B.软件周期 C.软件危机 D.软件产生2.瀑布模型本质上是一种(A)模型。A.线性顺序B.顺序迭代C.线性迭代D.早期产品3.瀑布模型存在的问题是(B)。A.用户容易参与开发 B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求4.螺旋模型是…

    2022年4月17日
    129

发表回复

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

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