1. 程式人生 > >用百度ocr+微信截圖實現文字識別

用百度ocr+微信截圖實現文字識別

python 文字識別 百度api

作用:將圖片中的文字識別出來

一、調用微信截圖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+微信截圖實現文字識別