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

识别过程如下:

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

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

樱花水的表现也不错哦~

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

调用API的准备工作——生成调用所需要的应用id和密钥
根据有道智云的接口约定,需要先在有道智云的个人页面上生成调用所需要的应用id和密钥,以便作为你的调用标识以及收费参考。。
具体步骤是:在有道智云的个人页面上创建实例、创建应用、绑定应用和实例,获取调用接口用到的应用的id和密钥。具体个人注册的过程和应用创建过程详见文章分享一次批量文件翻译的开发过程

开发过程介绍
1、api接口介绍
先介绍下该工程的核心部分,有道智云图片翻译服务的调用接口
API HTTPS地址:https://openapi.youdao.com/ocrtransapi
接口调用方式:POST
请求格式:表单
相应格式:JSON
接口调用参数
调用API需要向接口发送以下字段来访问服务。
| 字段名 | 类型 | 含义 | 必填 | 备注 |
|---|---|---|---|---|
| type | text | 文件上传类型 | True | 目前支持Base64,请置该字段值为1 |
| from | text | 源语言 | True | 参考下方的 支持语言 (可设置为auto) |
| to | text | 目标语言 | True | 参考下方的 支持语言 (可设置为auto) |
| appKey | text | 应用ID | True | 可在 应用管理 查看 |
| salt | text | UUID | True | 1995882C5064805BC30A39829B779D7B |
| sign | text | 签名 | True | md5(应用Id+q+salt+应用密钥) |
| ext | text | 翻译结果音频格式,支持mp3 | false | mp3 |
| q | text | 要识别的图片 | true | type为1时必填,图片的Base64编码 |
| docType | text | 服务器响应类型,目前只支持json | false | json |
| render | text | 是否需要服务端返回渲染的图片,0:否;1:是,默认是0 | false | 0 |
| nullIsError | text | 如果ocr没有检测到文字,是否返回错误,false:否;true:是,默认是false | false | 注意是字符串 |
签名生成方法如下:
1、将请求参数中的 应用ID appKey , 图片的Base64编码 q ,UUID salt 和 应用密钥 按照 应用ID+q+salt+应用密钥的顺序拼接得到字符串 str 。
2、对字符串 str 做 md5,得到32位大写的 sign (参考Java生成MD5示例,可点击右侧的JAVA示例)。
输出结果
返回的结果是json格式,具体说明如下:
| 字段名 | 字段说明 |
|---|---|
| orientation | 图片所对应的方向 |
| lanFrom | ocr所识别出来认为的图片中的语言 |
| 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、界面部分
主要元素:
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='选择翻译结果路径',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() 本文名称:使用python实现批量图片识别并翻译的方法-创新互联
网站网址:http://www.jxjierui.cn/article/jcpgi.html


咨询
建站咨询
