用百度ocr+微信截圖實現文字識別
阿新 • • 發佈:2018-05-23
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+微信截圖實現文字識別