<返回更多

百度API OCR小工具

2021-08-30    FoxLABS
加入收藏

一直在写东西,有时候会遇到这种需求,就是把图片上的文字拷贝到自己的文章中,所以写了这个小工具。

百度API OCR小工具

 

配合Snipaste使用天衣无缝,所有的东西都在剪切板里交换,即Snipaste截取的图片在剪切板里面,OCR直接识别后生成的文字也在剪切板里面,只要在ctrl+v就可以复制到文章里面了。

百度API OCR小工具

 

Snipaste 截图的快捷键是Ctrl+Q,设置这个OCR的快捷键为Ctrl+shift+O。

百度API OCR小工具

 

通过白嫖百度API的文字识别功能,具体可以参照百度API。

百度API OCR小工具

 

直接上程序

# encoding:utf-8
import requests
import base64
from PIL import Image
from PIL import ImageGrab
import pyperclip
from io import BytesIO
import sys
import win32clipboard as w
import win32con
'''
通用文字识别(高精度版)
'''
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
# 二进制方式打开图片文件
def get_token():
  # client_id 为官网获取的AK, client_secret 为官网获取的SK
  host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxxxxxxxxx&client_secret=xxxxxxxxxxxxxxxx'
  response = requests.get(host)
  if response:
  	return response.json()['access_token']
def encode_image_from_clip():
  picture_format = 'png'
  image = ImageGrab.grabclipboard()
  if not isinstance(image, Image.Image):
  # tkinter.messagebox.showinfo("picture2base64", "not a image in clipboard.")
  	print("not a image in clipboard.")
  sys.exit(1)
  img_buffer = BytesIO()
  image.save(img_buffer, format=picture_format, optimize=True, quality=40)
  byte_data = img_buffer.getvalue()
  base64_byte = base64.b64encode(byte_data)
  return base64_byte
def setClipboard(Str):
  w.OpenClipboard()
  w.EmptyClipboard()
  w.SetClipboardData(win32con.CF_UNICODETEXT, Str)
  w.CloseClipboard()
img = encode_image_from_clip()
params = {"image":img}
access_token = get_token()
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:
	results = response.json()['words_result']
results_display = ''
for result in results:
	results_display = results_display + result['words'] + 'n' 
print(results_display)
setClipboard(results_display)

然后通过pyinstaller 打包成exe就可以了。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>