Python從圖片提取文字


需求:讀取圖片內的文字,圖片包含url形式的和image形式的

實現思路:python調用騰訊api,參考騰訊官方文檔:https://cloud.tencent.com/document/product/866/17596

步驟:調用api需要配置header請求頭,請求頭需要鑒權簽名,鑒權簽名需要api密鑰。

鑒權簽名:https://cloud.tencent.com/document/product/866/17734

api密鑰的獲取:登陸騰訊雲https://console.cloud.tencent.com/cam/capi

代碼如下

import time
import base64
import hmac
import hashlib
from hmac import new as hmac
import requests
import json
import datetime
import random

'''通過登陸騰訊雲獲取自己的api密鑰'''
appid='12******25'
SecretID='AKIDGS************************NPpyNp'
SecretKey='Xt*************************iwybH'

'''初始化除api外的其他參數'''
currentTime = int(time.time()) #當前時間戳
expiredTime = currentTime+2592000 #簽名的有效期 此處定義為當前時間+30天
bucket=''# 圖片資源的組織管理單元,歷史遺留字段,可不填
rand=7648353324 #隨機串,通過函數 random.randint(1,9999999999) 生成
fileid='' #資源存儲的唯一標識,單次簽名必填;多次簽名選填,如填寫則會驗證與當前操作的文件路徑是否一致

'''配置 拼接簽名串'''
src_str='a='+appid+'&b='+bucket+'&k='+SecretID+'&e='+str(expiredTime)+'&t='+str(currentTime)+'&r='+str(rand)+'&f='+fileid

'''定義生成簽名的函數'''
def hash_hmac(ac_key,orignal):
SignTmp = hmac(bytes(ac_key,'utf-8'),bytes(orignal,'utf-8'), hashlib.sha1).digest()#+'.'+bytes(orignal,'utf-8')
Sign = base64.b64encode(SignTmp+orignal.encode())
return Sign

'''生成簽名'''
authorization=hash_hmac(SecretKey,src_str)

'''定義請求協議'''
url='https://recognition.image.myqcloud.com/ocr/handwriting'

'''配置請求頭'''
headers={
'Authorization':authorization,
'Host':'recognition.image.myqcloud.com'
}

# 使用 url 的請求示例
url_img='https://images.jiandaoyun.com/Fm0I5jLH9zGFpYn5SLoEP-EhWOmC'#+'.png'
data_img={'appid':appid,'url':url_img}

'''
#使用 image 的請求示例
url_img='kuaiji-5-243.jpg',open('D:\\python\\kuaiji\\kuaiji-5-243.jpg','rb'),'image/jpeg'
data_img={'appid':appid,'image':(url_img)}
'''
r = requests.post(url,files=data_img,headers=headers)
data=json.loads(r.content.decode('utf-8'))
count=len(data['data']['items'])

try:
for i in range(count):
x=data['data']['items'][i]['itemcoord']['x']
y=data['data']['items'][i]['itemcoord']['y']
content=data['data']['items'][i]['itemstring']
print(content)
except:
print('wrong')

代碼執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM