推广 热搜: page  关键词  数据分析  服务  获取  哪些  链接  数据分析系统  搜索  小红 

Python3 图片文字识别翻译——调用百度AI、百度翻译和有道翻译的API

   日期:2025-01-02     作者:xu1a5    caijiyuan   评论:0    移动:https://sicmodule.kub2b.com/mobile/news/14693.html
核心提示:百度AI文字识别API 获取文字识别应用的AppID、API KEY、Secret Key 百度翻译开放平台百度翻译API 加入百度翻译开放平台,

  • 百度AI

    • 文字识别API

      获取文字识别应用的AppID、API KEY、Secret Key

  • 百度翻译开放平台

    • 百度翻译API

      加入百度翻译开放平台,获取百度翻译应用的APP ID、密钥

  • 有道智云

    • 有道翻译API

      获取有道翻译应用的APP ID、密钥

阅读百度官方提供的API文档,图片的文字识别需要安装百度ai的包

  • 获取连接client
  • 读取图片
  • 调用通用识别方法
  • 接收返回结果
  • 结果解析
 

返回结果示例

 

至此,简单版图片文字识别已完成,详细阅读官方文档

1. 百度翻译

百度翻译API

请求

通用翻译API HTTP地址:http://api.fanyi.baidu.com/api/trans/vip/translate

通用翻译API HTTPS地址:https://fanyi-api.baidu.com/api/trans/vip/translate

完整请求示例为:http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

下面我们需要拼接这个url请求,官方解释如下

  • q:请求翻译query,例如文字识别出的文字

    :若翻译多个单词或者多段文本,需要发送请求之前对q字段做URL encode

  • from:翻译源语言,语言选择代码见官方文档,常见的有:auto-自动检测,zh-中文,en-英文

  • to:译文语言 :不可设置为auto

  • appid: APP ID

  • salt:随机数 例如 salt = random.randint(1, 65536)

  • sign:签名 appid+q+salt+密钥 的MD5值

     
解析返回数据

返回示例

 
fromTEXT翻译源语言toTEXT译文语言trans_resultMIXED LIST翻译结果srcTEXT原文dstTEXT译文

:若返回的是response.text,在解析时,需要将字符串转化为json

至此,百度通用翻译已完成,详细阅读官方文档

2. 有道翻译(与百度翻译类似)

有道翻译API

请求

有道翻译API HTTP地址:http://openapi.youdao.com/api

有道翻译API HTTPS地址:https://openapi.youdao.com/api

完整请求示例为:http://openapi.youdao.com/api?q=good&from=EN&to=zh_CHS&appKey=ff889495-4b45-46d9-8f48-946554334f2a&salt=2&sign=1995882C5064805BC30A39829B779D7B

字段名类型含义必填备注qtext要翻译的文本True必须是UTF-8编码fromtext源语言True语言列表 (可设置为auto)totext目标语言True语言列表 (可设置为auto)appKeytext应用 IDTrue可在 应用管理 查看salttext随机数Truesigntext签名,通过md5(appKey+q+salt+应用密钥)生成TrueappKey+q+salt+应用密钥的MD5值ext翻译结果音频格式,支持mp3falsemp3voice翻译结果发音选择,0为女声,1为男声,默认为女声false0

* 来自官方文档

中英文语言代码:zh-CHS-中文,EN-英文,更多见 支持语言表

具体请求操作与百度翻译类似,就不赘述了。

解析返回数据

官方示例如下

 

与百度翻译类似,若返回的是response.text,需要将字符串转化为json

接下来就是根据需要,解析json从而获得想要的结果。

至此,有道通用翻译已完成,详细阅读官方文档

 

ImageGrab.grabclipboard() 获取剪贴板的快照对象, 调用isinstance() 判断是否为图片。

  • 如何将剪贴板的图片对象传入到百度文字识别函数中

    将读到的图片对象写入到内存字节缓冲区中,然后百度文字识别函数从内存字节缓冲区中读取到图片进行识别

     

    以上,将mf对象传给百度文字识别函数

     

感觉整个项目过程中,属图形界面最花时间,也是最让我烦恼的。不过说到底还是对tkinter不熟悉,需要用的时候都是现查。虽然之前做过一个小demo–天气查询,基础功能已实现,看起来很low。

初始设计图如下

效果图如下(还存在一些问题)

1. 按照设计图填充控件

(1)窗体初始化
 
(2)主体框架
 
(3)左边frame填充
 
(4)中间frame填充
 

以上控件会涉及到一些函数

  • ocr_clipboard()

    从剪贴板获取图片,第四章已经提到了,补充 图片自适应窗体大小

     
      
    • resize()

       
  • scan_image()

     
  • ocr_image()

     
      
    • ocr()

      调用第二章中的百度图片文字识别

  • show_msg()

     
  • trans()

     
      
    • translate()

      调用第三章中的文字翻译函数

(5)右边frame填充
 
(6)底部frame填充
 

2. 补充——设置代理(存在问题

在调用识别、翻译时都是需要网络的,在特殊情况下,本地网络需要走代理,这时需要灵活地设置代理功能。想法是设计一个类似微信客户端的代理设置界面(弹窗设置)。

整体效果

(1)新建agent.py文件
 
(2)主窗体调用设置代理弹窗

主窗体添加设置代理按钮

 
  • set_proxy()

     
      
    • get_info()

       
(3)修改网络调用的函数(添加代理

在百度识图和翻译调用函数中,需要传输代理参数。具体如何添加就不多讲了

 
  • set_proxy()

    解析agent,获取addr,port,user,passwd即可,注proxies是字典类型

如何保存代理配置

重新打开程序的时候,代理设置就会被初始化(初始化代理状态是关闭)。

如果是读取配置文件,那么程序运行后会生成一个config文件;但初衷是只打包成一个exe文件,双击即可运行。

界面控件问题

程序初始运行,窗体如上图所示,左侧图片控件内容为空时,未加载指定大小,若插入图片后,左侧frame会扩展为指定大小,中部和右侧frame会向右移动,见第五章的程序界面设计效果图;而且底部frame未显示,需要手动向下放大才能显示Label(Copyright)。不知如何解决,tkinter的窗口调试太麻烦了。

界面美化

界面如同90年代的Windows 98风格(笑哭,太丑了(无力吐槽)。

以上问题欢迎提供解决方案


Python图像处理库PIL的ImageGrab模块介绍

python界面上的图片缩放,根据窗口大小

tkinter Combobox组件

获取屏幕及桌面大小

本文地址:https://sicmodule.kub2b.com/news/14693.html     企库往 https://sicmodule.kub2b.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号