首页 > 技术文章 > 用python 30行代码,搞定一个简单截图调取的百度识字功能

t-dashuai 2021-06-05 12:09 原文

在做一个数据标注过程中人工需要识别文字。

想了想写了一个小脚本,

大致过程这样的。

截图功能写了好久也没写明白,索性直接调用第三方的截图工具了,在采用qq或者微信截图时,截图完成后保存大致保存在剪切板所以直接抽取了剪切板中的文件。

使用 PIL 中ImageGrab获取剪切板文件,并保存在当前目录

1 image = ImageGrab.grabclipboard()
2     s= 'xxx.png'
3     image.save(s)

调用百度图片文字识别接口。取出输出的文字信息,可参考见百度ocr文档文字识别OCR (baidu.com)

 request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
    f = open(s, 'rb')
    img = base64.b64encode(f.read())
    params = {"image": img}
    access_token = 'xxx'
    request_url = request_url + "?access_token=" + access_token
    headers = {'content-type': 'application/x-www-form-urlencoded'}
    response = requests.post(request_url, data=params, headers=headers)
    if response:
        for i in response.json()['words_result']:
            print(i['words'])

使用tkinter模块设计一个窗口

# 设置窗口
window = Tk()
window.title('qcc_nw0.1')
# 设置窗口大小
window.geometry('500x800')
# lable标签
l = Label(window, text='识图2.0', bg='green', fg='white', font=('Arial', 12), width=30, height=2)
l.pack()
# 设置文本输出栏的文本框
E1 = Text(window,width='100',height='100')
E1.insert("insert", txt')
            E1.pack(side=RIGHT)
# 定义按钮
img_txt = Button(window, text='识图吗宝贝', font=('Arial', 10), width=15, height=1, command=s)
img_txt.pack()
window.mainloop()

完成;

看下完成后的效果

推荐阅读