作用:將圖片中的文字識別出來
一、調用微信截圖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")
四、效果展示(識別率還是很讓人滿意滴)