1. 程式人生 > 程式設計 >Python實現圖片識別加翻譯功能

Python實現圖片識別加翻譯功能

Python使用百度AI介面實現圖片識別加翻譯

python誕生30週年

# encoding:utf-8
import requests
import base64
from PIL import Image
import pytesseract
# 這裡需要安裝一下 Tesseract-OCR
# 連結:https://pan.baidu.com/s/1D2eODet7x9xshBVi6ZUZ_Q 
# 提取碼:qfef
# 安裝好之後別忘了把Tesseract-OCR路徑新增到環境變數中
import json
import requests
import keyboard #監聽按鍵庫
from PIL import ImageGrab #影象處理庫
import time
from aip import AipOcr #pip install baidu_aip
# print("開始截圖")
# 1. 擷取圖片
keyboard.wait(hotkey='ctrl+alt+a')
# print("鍵盤按下了'ctrl+alt+a'")
keyboard.wait('enter')
# print("鍵盤按下了'enter'")
# 模擬延遲,來解決grabclipboard函式的快取問題(grabclipboard函式操作太快,它就會讀取上一次的內容)
time.sleep(0.1)
# 2. 儲存圖片到電腦上
image = ImageGrab.grabclipboard()
image.save('screen.png')
#*************************************************************************************
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
# 二進位制方式開啟圖片檔案
f = open('screen.png','rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = "你自己的access_token,百度AI裡面有教程,我把網址放下面了"
# https://ai.baidu.com/ai-doc/OCR/vk3h7y58v
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)
print("文字識別:")
if response:
  locList = response.json()['words_result']
  for i in locList:
    print(i['words'])
print("\n翻譯:")
if response:
  locList = response.json()['words_result']
  for i in locList:
    text = i['words']
##================================================================================##
    # 翻譯函式,word 需要翻譯的內容
    def translate(word):
      # 有道詞典 api
      url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'
      # 傳輸的引數,其中 i 為需要翻譯的內容
      key = {
        'type': "AUTO",'i': word,"doctype": "json","version": "2.1","keyfrom": "fanyi.web","ue": "UTF-8","action": "FY_BY_CLICKBUTTON","typoResult": "true"
      }
      # key 這個字典為傳送給有道詞典伺服器的內容
      response = requests.post(url,data=key)
      # 判斷伺服器是否相應成功
      if response.status_code == 200:
        # 然後相應的結果
        return response.text
      else:
        print("有道詞典呼叫失敗")
        # 失敗就返回空
        return None
    def get_reuslt(repsonse):
      # 通過 json.loads 把返回的結果載入成 json 格式
      result = json.loads(repsonse)
      print("%s" % result['translateResult'][0][0]['tgt'])
    def main():
      list_trans = translate(text)
      get_reuslt(list_trans)
    if __name__ == '__main__':
      main()

儲存的圖片如下:

在這裡插入圖片描述

列印結果如下:

在這裡插入圖片描述

總結

以上所述是小編給大家介紹的Python實現圖片識別加翻譯功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!