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的源码浅要剖析Python的内存管理
Apr 16 Python
利用Python的Django框架中的ORM建立查询API
Apr 20 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
对python条件表达式的四种实现方法小结
Jan 30 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
详解python itertools功能
Feb 07 Python
Python Selenium实现无可视化界面过程解析
Aug 25 Python
python 实现图片裁剪小工具
Feb 02 Python
scrapy-splash简单使用详解
Feb 21 Python
python flask开发的简单基金查询工具
Jun 02 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
PHP实现网上点歌(二)
2006/10/09 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
javascript学习之闭包分析
2010/12/02 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
JavaScript中双向数据绑定详解
2017/05/03 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
一波神奇的Python语句、函数与方法的使用技巧总结
2015/12/08 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
pandas的相关系数与协方差实例
2019/12/27 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
Python turtle画图库&&画姓名实例
2020/01/19 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
《大海那边》教学反思
2014/04/09 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
父亲节活动总结
2015/02/12 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书