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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用百度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")

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

技术分享图片

以上是关于用百度ocr+微信截图实现文字识别的主要内容,如果未能解决你的问题,请参考以下文章

Qt+百度AI文字识别OCR小工具

Python - 开发截图识别OCR小工具

python,使用百度api实现复制截图中的文字

Python|基于百度API五行代码实现OCR文字高识别率

python调用百度ocr接口,实现图片内文字识别

借助百度OCR,实现一键识别图片中文字,就是这么酷!