baidu_ocr.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # -*- coding:utf-8 -*-
  2. import base64
  3. import requests
  4. import time
  5. access_token = None
  6. token_time = 0
  7. def high_ocr_location(pic_path):
  8. """
  9. 通用文字识别(高精度含位置版)
  10. """
  11. global access_token, token_time
  12. with open(pic_path, 'rb') as f:
  13. img = base64.b64encode(f.read())
  14. if time.time() - token_time > 3600 * 8:
  15. print("获取token啦")
  16. url_token = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=BaL3yDflxe7Z5001vF8rAzKu&client_secret=xs40HshFLDDyWgCCfgnz86zWhQ8X1s5f'
  17. token = requests.post(url_token).json()
  18. access_token = token['access_token']
  19. token_time = time.time()
  20. request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate"
  21. params = {"image": img, "recognize_granularity": "small"}
  22. request_url = request_url + "?access_token=" + access_token
  23. headers = {'content-type': 'application/x-www-form-urlencoded'}
  24. response = requests.post(request_url, data=params, headers=headers)
  25. if response:
  26. r_json = response.json()
  27. return r_json
  28. if __name__ == '__main__':
  29. print(high_ocr_location(r"C:\Users\86131\Desktop\4.jpg"))