最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 實(shí)現(xiàn)批量圖片識(shí)別并翻譯

 更新時(shí)間:2020年11月02日 15:54:57   作者:無毀的湖光-Al  
這篇文章主要介紹了python 實(shí)現(xiàn)批量圖片識(shí)別并翻譯,幫助大家利用python處理圖片,感興趣的朋友可以了解下

近小編遇到一個(gè)生存問題,女朋友讓我給她翻譯英文化妝品標(biāo)簽。美其名曰:"程序猿每天英語開發(fā),英文一定很好吧,來幫我翻譯翻譯化妝品成分",”來,幫我看看這個(gè)面膜建議敷幾分鐘“。。。??磥沓饩拶Y買化妝品不算完,還需要會(huì)各種英文介紹。

默默收起大學(xué)考的一摞429分的四級(jí)證書,我打開了IDE。。。我打算開發(fā)一個(gè)能批量翻譯的圖片的demo,把家里的各種化妝品都翻譯好。機(jī)智如我,是不會(huì)自己從訓(xùn)練模型做起的,打開有道智云的友好的AI接口頁面 ,果然有圖片翻譯服務(wù),體驗(yàn)了一下可是真不錯(cuò),于是果斷使用。

效果展示

Demo在這里,一起來看看效果吧:

識(shí)別過程如下:

逐個(gè)看看效果哈!make up for ever 雖然沒翻譯成玫珂菲,哈哈哈但是關(guān)鍵詞長(zhǎng)期保濕、固定噴霧都翻譯出來了~~棒

這個(gè)更是不明覺厲,韓文、英文混合都能翻譯~~~

櫻花水的表現(xiàn)也不錯(cuò)哦~

再亂入一個(gè)開起來更像包裝盒的圖片識(shí)別,效果不錯(cuò),沒受圖片上文字傾斜等影響 :

調(diào)用API的準(zhǔn)備工作——生成調(diào)用所需要的應(yīng)用id和密鑰

根據(jù)有道智云的接口約定,需要先在有道智云的個(gè)人頁面上生成調(diào)用所需要的應(yīng)用id和密鑰,以便作為你的調(diào)用標(biāo)識(shí)以及收費(fèi)參考。。

具體步驟是:在有道智云的個(gè)人頁面上創(chuàng)建實(shí)例、創(chuàng)建應(yīng)用、綁定應(yīng)用和實(shí)例,獲取調(diào)用接口用到的應(yīng)用的id和密鑰。具體個(gè)人注冊(cè)的過程和應(yīng)用創(chuàng)建過程詳見文章分享一次批量文件翻譯的開發(fā)過程

開發(fā)過程介紹

1、api接口介紹

先介紹下該工程的核心部分,有道智云圖片翻譯服務(wù)的調(diào)用接口

API HTTPS地址:https://openapi.youdao.com/ocrtransapi

接口調(diào)用方式:POST

請(qǐng)求格式:表單

相應(yīng)格式:JSON

接口調(diào)用參數(shù)
調(diào)用API需要向接口發(fā)送以下字段來訪問服務(wù)。

字段名 類型 含義 必填 備注
type text 文件上傳類型 True 目前支持Base64,請(qǐng)置該字段值為1
from text 源語言 True 參考下方的 支持語言 (可設(shè)置為auto)
to text 目標(biāo)語言 True 參考下方的 支持語言 (可設(shè)置為auto)
appKey text 應(yīng)用ID True 可在 應(yīng)用管理 查看
salt text UUID True 1995882C5064805BC30A39829B779D7B
sign text 簽名 True md5(應(yīng)用Id+q+salt+應(yīng)用密鑰)
ext text 翻譯結(jié)果音頻格式,支持mp3 false mp3
q text 要識(shí)別的圖片 true type為1時(shí)必填,圖片的Base64編碼
docType text 服務(wù)器響應(yīng)類型,目前只支持json false json
render text 是否需要服務(wù)端返回渲染的圖片,0:否;1:是,默認(rèn)是0 false 0
nullIsError text 如果ocr沒有檢測(cè)到文字,是否返回錯(cuò)誤,false:否;true:是,默認(rèn)是false false 注意是字符串

簽名生成方法如下:
1、將請(qǐng)求參數(shù)中的 應(yīng)用ID appKey , 圖片的Base64編碼 q ,UUID salt 和 應(yīng)用密鑰 按照 應(yīng)用ID+q+salt+應(yīng)用密鑰的順序拼接得到字符串 str 。
2、對(duì)字符串 str 做 md5,得到32位大寫的 sign (參考Java生成MD5示例,可點(diǎn)擊右側(cè)的JAVA示例)。

輸出結(jié)果
返回的結(jié)果是json格式,具體說明如下:

字段名 字段說明
orientation 圖片所對(duì)應(yīng)的方向
lanFrom ocr所識(shí)別出來認(rèn)為的圖片中的語言
textAngle 圖片的傾斜角度
errorCode 錯(cuò)誤碼
lanTo 目標(biāo)語言
resRegions 圖片翻譯的具體內(nèi)容
-boundingBox 區(qū)域范圍,四個(gè)值: 左上角的x值,左上角的y值,區(qū)域的的寬,區(qū)域的高 例如:134,0,1066,249
-linesCount 行數(shù)(用于前端排版)
-lineheight 行高
-context 該區(qū)域的原文
-linespace 行間距
-tranContent 翻譯結(jié)果

2、詳細(xì)開發(fā)

這個(gè)demo使用python3開發(fā),包括maindow.py,transclass.py,pictranslate.py三個(gè)文件。maindow.py主要實(shí)現(xiàn)界面部分,使用python自帶的tkinter庫(kù),來進(jìn)行圖片文件選擇、選擇結(jié)果存放路徑。transclass.py實(shí)現(xiàn)了圖片讀取、處理等邏輯,最后通過pictranslate.py中的方法來調(diào)用圖片翻譯API。

1、界面部分
主要元素:

root=tk.Tk()
root.title("netease youdao translation test")
frm = tk.Frame(root)
frm.grid(padx='50', pady='50')
btn_get_file = tk.Button(frm, text='選擇待翻譯圖片', command=get_files)
btn_get_file.grid(row=0, column=0, ipadx='3', ipady='3', padx='10', pady='20')
text1 = tk.Text(frm, width='40', height='10')
text1.grid(row=0, column=1)
btn_get_result_path=tk.Button(frm,text='選擇翻譯結(jié)果路徑',command=set_result_path)
btn_get_result_path.grid(row=1,column=0)
text2=tk.Text(frm,width='40', height='2')
text2.grid(row=1,column=1)

btn_sure=tk.Button(frm,text="翻譯",command=translate_files)
btn_sure.grid(row=2,column=1)


root.mainloop()

獲取待翻譯圖片文件的方法(此處設(shè)置的僅支持.jpg文件):

def get_files():
 files = filedialog.askopenfilenames(filetypes=[('text files', '.jpg')])
 translate.file_paths=files
 if files:
  for file in files:
   text1.insert(tk.END, file + '\n')
   text1.update()
 else:
  print('你沒有選擇任何文件')

獲取結(jié)果存儲(chǔ)路徑:

def set_result_path():
 result_path=filedialog.askdirectory()
 translate.result_root_path=result_path
 text2.insert(tk.END,result_path)

翻譯按鈕,調(diào)用了translate_files,該文件中的translate_files()方法最終調(diào)用了translate類的translate_files()方法:

def translate_files():
 if translate.file_paths:
  translate.translate_files()
  tk.messagebox.showinfo("提示","搞定")
 else :
  tk.messagebox.showinfo("提示","無文件")

2、批量圖片處理

transclass.py實(shí)現(xiàn)了圖片讀取、處理等邏輯,Translate類定義如下:

class Translate():
 def __init__(self,name,file_paths,result_root_path,trans_type):
  self.name=name
  self.file_paths=file_paths 			# 待翻譯文件路徑
  self.result_root_path=result_root_path # 結(jié)果存放路徑
  self.trans_type=trans_type


 def translate_files(self):
  for file_path in self.file_paths:	#對(duì)批量圖片逐個(gè)處理
   file_name=os.path.basename(file_path)
   print('==========='+file_path+'===========')
   trans_reult=self.translate_use_netease(file_path) #對(duì)單個(gè)圖片調(diào)用接口
   resul_file=open(self.result_root_path+'/result_'+file_name.split('.')[0]+'.txt','w').write(trans_reult)  #返回結(jié)果寫入


 def translate_use_netease(self,file_content): #調(diào)用有道接口,并返回結(jié)果
  result= connect(file_content)
  return result

3、有道api調(diào)用
pictranslate.py中封裝了調(diào)用有道智云API的一些方法,其中最核心的是connect()方法,按照接口要求拼接了所需參數(shù),發(fā)起請(qǐng)求并返回結(jié)果。

def connect(file_content,fromLan,toLan):
 f = open(file_content, 'rb') # 二進(jìn)制方式打開圖文件
 q = base64.b64encode(f.read()).decode('utf-8') # 讀取文件內(nèi)容,轉(zhuǎn)換為base64編碼
 f.close()
 data = {}
 # data['from'] = '源語言'
 # data['to'] = '目標(biāo)語言'
 data['from'] = 'auto'
 data['to'] = 'auto'
 data['type'] = '1'
 data['q'] = q
 salt = str(uuid.uuid1())
 signStr = APP_KEY + q + salt + APP_SECRET
 sign = encrypt(signStr)
 data['appKey'] = APP_KEY
 data['salt'] = salt
 data['sign'] = sign

 response = do_request(data)
 result=json.loads(str(response.content, encoding="utf-8"))
 print(result)

 translateResults=result['resRegions']
 print(translateResults)
 pictransresult=""
 for i in translateResults:
  pictransresult=pictransresult+i['tranContent']+"\n"
 return pictransresult

總結(jié)

又是一次愉快的開發(fā)體驗(yàn),而且還是為數(shù)不多的求生成功體驗(yàn) : P ,沒想到借助開放平臺(tái)的力量,圖像識(shí)別,自然語言處理變得如此易如反掌,只要能正確發(fā)起請(qǐng)求,就能得到不錯(cuò)的翻譯結(jié)果,剩下大把的時(shí)間用來和女朋友炫技,這感覺——爽!

項(xiàng)目地址:https://github.com/LemonQH/BatchPicTranslate

以上就是python 實(shí)現(xiàn)批量圖片識(shí)別并翻譯的詳細(xì)內(nèi)容,更多關(guān)于python 圖片識(shí)別并翻譯的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python的基本語法詳解

    Python的基本語法詳解

    本文詳細(xì)講解了Python的基本語法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python+OpenCV之直方圖均衡化詳解

    Python+OpenCV之直方圖均衡化詳解

    直方圖均衡化是一種增強(qiáng)圖像對(duì)比度的方法,其主要思想是將一副圖像的直方圖分布變成近似均勻分布,從而增強(qiáng)圖像的對(duì)比度。本文將通過示例為大家講講直方圖均衡化的原理與實(shí)現(xiàn),感興趣的可以了解一下
    2022-09-09
  • Numpy之random.randint產(chǎn)生隨機(jī)整數(shù)方式

    Numpy之random.randint產(chǎn)生隨機(jī)整數(shù)方式

    這篇文章主要介紹了Numpy之random.randint產(chǎn)生隨機(jī)整數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Python使用tkinter制作在線翻譯軟件

    Python使用tkinter制作在線翻譯軟件

    這篇文章主要為大家詳細(xì)介紹了Python使用tkinter制作在線翻譯軟件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • Python實(shí)現(xiàn)繁體轉(zhuǎn)為簡(jiǎn)體的方法示例

    Python實(shí)現(xiàn)繁體轉(zhuǎn)為簡(jiǎn)體的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)繁體轉(zhuǎn)為簡(jiǎn)體的方法,涉及Python編碼轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • Python完美還原超級(jí)瑪麗游戲附代碼與視頻

    Python完美還原超級(jí)瑪麗游戲附代碼與視頻

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實(shí)現(xiàn)超級(jí)瑪麗,90后的回憶老游戲,快來看戴帽子的大胡子穿著背帶褲的馬里奧
    2021-11-11
  • python3.7.2 tkinter entry框限定輸入數(shù)字的操作

    python3.7.2 tkinter entry框限定輸入數(shù)字的操作

    這篇文章主要介紹了python3.7.2 tkinter entry框限定輸入數(shù)字的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • bat和python批量重命名文件的實(shí)現(xiàn)代碼

    bat和python批量重命名文件的實(shí)現(xiàn)代碼

    這篇文章主要介紹了bat和python批量重命名文件的實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2016-05-05
  • python3發(fā)送郵件需要經(jīng)過代理服務(wù)器的示例代碼

    python3發(fā)送郵件需要經(jīng)過代理服務(wù)器的示例代碼

    今天小編就為大家分享一篇python3發(fā)送郵件需要經(jīng)過代理服務(wù)器的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Pygame實(shí)戰(zhàn)之檢測(cè)按鍵正確的小游戲

    Pygame實(shí)戰(zhàn)之檢測(cè)按鍵正確的小游戲

    這篇文章主要為大家介紹了利用Pygame模塊實(shí)現(xiàn)的檢測(cè)按鍵正確的小游戲:每個(gè)字母有10秒的按鍵時(shí)間,如果按對(duì),則隨機(jī)產(chǎn)生新的字符,一共60s,如果時(shí)間到了,則游戲結(jié)束??靵砀S小編一起學(xué)習(xí)一下吧
    2021-12-12

最新評(píng)論

饶阳县| 大关县| 内江市| 合水县| 广灵县| 保德县| 兰溪市| 怀宁县| 大城县| 丰顺县| 息烽县| 松原市| 和平县| 锡林浩特市| 遵化市| 临江市| 勐海县| 永康市| 江口县| 曲阜市| 伽师县| 洛隆县| 休宁县| 安义县| 乌拉特前旗| 垦利县| 梓潼县| 南郑县| 富锦市| 陆川县| 德江县| 会东县| 吉首市| 松潘县| 格尔木市| 年辖:市辖区| 莆田市| 湖南省| 都安| 新干县| 翁源县|