Python实现图片识别加翻译功能


Posted in Python onDecember 26, 2019

Python使用百度AI接口实现图片识别加翻译

python诞生30周年

# encoding:utf-8
import requests
import base64
from PIL import Image
import pytesseract
# 这里需要安装一下 Tesseract-OCR
# 链接:https://pan.baidu.com/s/1D2eODet7x9xshBVi6ZUZ_Q 
# 提取码:qfef
# 安装好之后别忘了把Tesseract-OCR路径添加到环境变量中
import json
import requests
import keyboard #监听按键库
from PIL import ImageGrab #图像处理库
import time
from aip import AipOcr #pip install baidu_aip
# print("开始截图")
# 1. 截取图片
keyboard.wait(hotkey='ctrl+alt+a')
# print("键盘按下了'ctrl+alt+a'")
keyboard.wait('enter')
# print("键盘按下了'enter'")
# 模拟延迟,来解决grabclipboard函数的缓存问题(grabclipboard函数操作太快,它就会读取上一次的内容)
time.sleep(0.1)
# 2. 保存图片到电脑上
image = ImageGrab.grabclipboard()
image.save('screen.png')
#*************************************************************************************
request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"
# 二进制方式打开图片文件
f = open('screen.png', 'rb')
img = base64.b64encode(f.read())
params = {"image":img}
access_token = "你自己的access_token,百度AI里面有教程,我把网址放下面了"
# https://ai.baidu.com/ai-doc/OCR/vk3h7y58v
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
print("文字识别:")
if response:
  locList = response.json()['words_result']
  for i in locList:
    print(i['words'])
print("\n翻译:")
if response:
  locList = response.json()['words_result']
  for i in locList:
    text = i['words']
##================================================================================##
    # 翻译函数,word 需要翻译的内容
    def translate(word):
      # 有道词典 api
      url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'
      # 传输的参数,其中 i 为需要翻译的内容
      key = {
        'type': "AUTO",
        'i': word,
        "doctype": "json",
        "version": "2.1",
        "keyfrom": "fanyi.web",
        "ue": "UTF-8",
        "action": "FY_BY_CLICKBUTTON",
        "typoResult": "true"
      }
      # key 这个字典为发送给有道词典服务器的内容
      response = requests.post(url, data=key)
      # 判断服务器是否相应成功
      if response.status_code == 200:
        # 然后相应的结果
        return response.text
      else:
        print("有道词典调用失败")
        # 失败就返回空
        return None
    def get_reuslt(repsonse):
      # 通过 json.loads 把返回的结果加载成 json 格式
      result = json.loads(repsonse)
      print("%s" % result['translateResult'][0][0]['tgt'])
    def main():
      list_trans = translate(text)
      get_reuslt(list_trans)
    if __name__ == '__main__':
      main()

保存的图片如下:

Python实现图片识别加翻译功能

打印结果如下:

Python实现图片识别加翻译功能

总结

以上所述是小编给大家介绍的Python实现图片识别加翻译功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
selenium + python 获取table数据的示例讲解
Oct 13 Python
Python中文件的写入读取以及附加文字方法
Jan 23 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
python实现局域网内实时通信代码
Dec 22 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 #Python
opencv之为图像添加边界的方法示例
Dec 26 #Python
Python 过滤错误log并导出的实例
Dec 26 #Python
python3 pathlib库Path类方法总结
Dec 26 #Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 #Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 #Python
基于h5py的使用及数据封装代码
Dec 26 #Python
You might like
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP实现微信对账单处理
2018/10/01 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
基于jquery实现无限级树形菜单
2016/03/22 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
2017/12/05 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
react 生命周期实例分析
2020/05/18 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
使用python编写android截屏脚本双击运行即可
2014/07/21 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
美国电视购物HSN官网:HSN
2016/09/07 全球购物
企业办公室主任岗位职责
2014/02/19 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
教研活动主持词
2015/07/03 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
《确定位置》教学反思
2016/02/18 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers