使用python实现批量图片识别并翻译的方法

  

这期内容当中小编将会给大家带来有关使用python 实现批量图片识别并翻译的方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

识别过程如下:

使用python 实现批量图片识别并翻译的方法

逐个看看效果哈!make up for ever 虽然没翻译成玫珂菲,哈哈哈但是关键词长期保湿、固定喷雾都翻译出来了~~棒

使用python 实现批量图片识别并翻译的方法

这个更是不明觉厉,韩文、英文混合都能翻译~~~

使用python 实现批量图片识别并翻译的方法

樱花水的表现也不错哦~

使用python 实现批量图片识别并翻译的方法

再乱入一个开起来更像包装盒的图片识别,效果不错,没受图片上文字倾斜等影响 :

使用python 实现批量图片识别并翻译的方法

根据有道智云的接口约定,需要先在有道智云的个人页面上生成调用所需要的应用id和密钥,以便作为你的调用标识以及收费参考。。

具体步骤是:在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的id和密钥。具体个人注册的过程和应用创建过程详见文章分享一次批量文件翻译的开发过程

使用python 实现批量图片识别并翻译的方法

1、api接口介绍

先介绍下该工程的核心部分,有道智云图片翻译服务的调用接口

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

接口调用方式:POST

请求格式:表单

相应格式:JSON

接口调用参数
调用API需要向接口发送以下字段来访问服务。

字段名类型含义必填备注typetext文件上传类型True目前支持Base64,请置该字段值为1fromtext源语言True参考下方的 支持语言 (可设置为auto)totext目标语言True参考下方的 支持语言 (可设置为auto)appKeytext应用IDTrue可在 应用管理 查看salttextUUIDTrue1995882C5064805BC30A39829B779D7Bsigntext签名Truemd5(应用Id+q+salt+应用密钥)exttext翻译结果音频格式,支持mp3falsemp3qtext要识别的图片truetype为1时必填,图片的Base64编码docTypetext服务器响应类型,目前只支持jsonfalsejsonrendertext是否需要服务端返回渲染的图片,0:否;1:是,默认是0false0nullIsErrortext如果ocr没有检测到文字,是否返回错误,false:否;true:是,默认是falsefalse注意是字符串

签名生成方法如下:
1、将请求参数中的 应用ID appKey , 图片的Base64编码 q ,UUID salt 和 应用密钥 按照 应用ID+q+salt+应用密钥的顺序拼接得到字符串 str 。
2、对字符串 str 做 md5,得到32位大写的 sign (参考Java生成MD5示例,可点击右侧的JAVA示例)。

输出结果
返回的结果是json格式,具体说明如下:

字段名字段说明orientation图片所对应的方向lanFromocr所识别出来认为的图片中的语言textAngle图片的倾斜角度errorCode错误码lanTo目标语言resRegions图片翻译的具体内容-boundingBox区域范围,四个值: 左上角的x值,左上角的y值,区域的的宽,区域的高 例如:134,0,1066,249-linesCount行数(用于前端排版)-lineheight行高-context该区域的原文-linespace行间距-tranContent翻译结果

2、详细开发

这个demo使用python3开发,包括maindow.py,transclass.py,pictranslate.py三个文件。maindow.py主要实现界面部分,使用python自带的tkinter库,来进行图片文件选择、选择结果存放路径。transclass.py实现了图片读取、处理等逻辑,最后通过pictranslate.py中的方法来调用图片翻译API。

1,界面部分
主要元素:

根=tk.Tk ()   root.title(“网易有道翻译test")   纳=tk.Frame(根)   frm.grid (padx=& # 39; 50 & # 39;, pady=& # 39; 50 & # 39;)   btn_get_file=tk。按钮(纳、文本=& # 39;选择待翻译图片& # 39;,命令=get_files)   btn_get_file。网格(行=0,列=0,ipadx=& # 39; 3 & # 39;, ipady=& # 39; 3 & # 39;, padx=& # 39; 10 & # 39;, pady=& # 39; 20 & # 39;)   text1=tk。文本(纳,宽度=& # 39;40 & # 39;,身高=& # 39;10 & # 39;)   text1。网格(行=0,列=1)   纳,btn_get_result_path=tk.Button(文本=& # 39;选择翻译结果路径& # 39;,命令=set_result_path)   btn_get_result_path.grid(行=1,列=0)   纳,text2=tk.Text(宽度=& # 39;40 & # 39;,身高=& # 39;2 & # 39;)   text2.grid(行=1,列=1)      btn_sure=tk.Button(纳、文本=胺搿?命令=translate_files)   btn_sure.grid(行=2,列=1)         root.mainloop ()

使用python实现批量图片识别并翻译的方法