Python 调用百度OCR

背景:

学校进行安全知识教育考试,题目采用图片的格式显示,不方便复制粘贴题目搜索答案。因为懒得打字,所以采用OCR的方法识别图片中的字符。

Python 调用百度OCR_第1张图片

代码:

import urllib
from tkinter import *
import urllib.request
from aip import AipOcr

# GUI类
class Application(Frame):
    # GUI初始化
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.text = Text(self)
        self.text.pack()
        self.nameInput = Entry(self, {'width': 80})
        self.nameInput.pack()
        self.nameInput.insert('end', '输入图片的URL')
        self.alertButton = Button(self, text='识别', command=self.hello)
        self.alertButton.pack()
	
    # 光学字符识别方法
    def hello(self):
        # 读取输入框中的URL
        image_url = self.nameInput.get()
        try:
            # 调用百度的OCR API
            image_string = client.basicGeneralUrl(image_url)
            # 解析结果
            image_string = image_string['words_result']
            words_result = ''
            for string in image_string:
                words_result = words_result + string['words']
        except:
            words_result = '失败'
        # 显示在文本框中
        self.text.delete('1.0', 'end')
        self.text.insert('end', words_result)


""" 你的 APPID AK SK """
APP_ID = 'AppID'
API_KEY = 'API Key'
SECRET_KEY = 'Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

# 启动GUI
app = Application()
# 设置窗口标题:
app.master.title('百度OCR')
# 主消息循环:
app.mainloop()

调用方法:

详见https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.html

调用前需要在百度云上创建应用

Python 调用百度OCR_第2张图片

本例中的代码如下:

""" 你的 APPID AK SK """
APP_ID = 'AppID'
API_KEY = 'API Key'
SECRET_KEY = 'Secret Key'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 调用百度的OCR API
image_string = client.basicGeneralUrl(image_url)

GUI参考文档:

https://morvanzhou.github.io/tutorials/python-basic/tkinter/

上面的文档介绍的不是很全面,实际编程的时候还是建议直接看源代码:

Python 调用百度OCR_第3张图片

运行结果:

Python 调用百度OCR_第4张图片

你可能感兴趣的:(python)