作用:将图片中的文字识别出来
一、调用微信截图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")
四、效果展示(识别率还是很让人满意滴)