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 相关文章推荐
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
Python内建模块struct实例详解
Feb 02 Python
教你使用python画一朵花送女朋友
Mar 29 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python中拆分字符串的操作方法
Jul 23 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
Apr 20 Python
Jupyter打开图形界面并画出正弦函数图像实例
Apr 24 Python
Python filter过滤器原理及实例应用
Aug 18 Python
利用python绘制正态分布曲线
Jan 04 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
2011/02/25 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
2014/08/30 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
2016/05/25 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python网络编程详解
2017/10/31 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
Python TKinter如何自动关闭主窗口
2020/02/26 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
计算机专业大学生的自我评价
2013/11/14 职场文书
大学军训决心书
2015/02/05 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
Vue监视数据的原理详解
2022/02/24 Vue.js
深入理解 Golang 的字符串
2022/05/04 Golang
MySQL分布式恢复进阶
2022/07/23 MySQL