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 相关文章推荐
python中使用sys模板和logging模块获取行号和函数名的方法
Apr 15 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
python Flask实现restful api service
Dec 04 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
使用Python 统计高频字数的方法
Jan 31 Python
django的ORM操作 增加和查询
Jul 26 Python
Python 将 QQ 好友头像生成祝福语的实现代码
May 03 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
May 27 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
用python发送微信消息
Dec 21 Python
Django实现聊天机器人
May 31 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
js密码强度校验
2015/11/10 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
python爬虫实例详解
2018/06/19 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python全栈知识点总结
2019/07/01 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
店长岗位的工作内容
2013/11/12 职场文书
九年级英语教学反思
2014/01/31 职场文书
小学生作文评语大全
2014/04/21 职场文书
培训协议书范本
2014/04/22 职场文书
团日活动总结范文
2014/04/25 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python