用百度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+微信截图实现文字识别

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

上一篇:微信小程序(小游戏)后台开发


下一篇:c++封装的用来存储key value pair的内存池类