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系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
Python通过解析网页实现看报程序的方法
Aug 04 Python
Python使用自带的ConfigParser模块读写ini配置文件
Jun 26 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
如何关掉pycharm中的python console(图解)
Oct 31 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
keras slice layer 层实现方式
Jun 11 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
用Python进行栅格数据的分区统计和批量提取
May 27 Python
python 安全地删除列表元素的方法
Mar 16 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
JavaScript异步编程:异步数据收集的具体方法
2013/08/19 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
Python字符串中查找子串小技巧
2015/04/10 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
节水倡议书
2015/01/19 职场文书
围城读书笔记
2015/06/26 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript