场景描述

实现类似微信扫一扫中翻译功能,即拍照商品,一般为英语、韩语、日语等商品描述,进行文字识别后,进行在线翻译。

图片识别翻译前

图片识别翻译后

第一步引入所需要的库

from PIL import ImageFontfrom PIL import Imagefrom PIL import ImageDrawimport hashlibfrom urllib import parsefrom urllib import requestimport randomimport base64import json

第二步图片文字识别ocr(翻译)

文字识别(Optical Character Recognition,OCR),简单讲就是识别出图片中包含的文字信息。由于这是个很深的一个领域(贫道修行尚欠),有兴趣的可以关注下第三方框架openCV,在这里简单通过第三方接口有道智云来实现,其他如百度等也都有免费的接口提供。之所以选有道,主要考虑是一般仅支持一个外文翻译为中文,有道智云相对而言多种一起识别,其次直接就帮我翻译成中文了,比较简单直接上代码。

# 替换成您的应用IDappKey = "29df4hs2342"# 替换您的应用密钥appSecret = "9bPJj8Lh7933hlJHGOLJDSocTRh"# 参数部分f = open(r'd_4.png', 'rb') # 二进制方式打开图文件q = base64.b64encode(f.read()) # 读取文件内容,转换为base64编码q = q.decode('UTF-8', 'strict')f.close()# 源语言fromLan = "en"# 目标语言to = "zh-CHS"# 上传类型type = "1"# 随机数,自己随机生成,建议时间戳salt = random.randint(1, 65536)# 签名sign = appKey + q + str(salt) + appSecretm1 = hashlib.md5()m1.update(sign.encode("utf8"))sign = m1.hexdigest()data = {'appKey': appKey, 'q': q, 'from': fromLan, 'to': to, 'type': type, 'salt': str(salt), 'sign': sign}data = parse.urlencode(data).encode(encoding='UTF8')req = request.Request('http://openapi.youdao.com/ocrtransapi', data)response = request.urlopen(req)res = response.read()res = json.loads(res, encoding='utf-8')resRegions = res['resRegions']# 输出识别内容for i in resRegions: print(i)

第三步根据定位替换图片文字

这一步主要涉及python的PIL库,这个库很强大,主要用于图片的各种处理,可以自行根据python版本进行安装,python2.X和python3.X会有稍微区别。

# 绘制图片def dw(boundingBox, linesCount, lineheight, tranContent): # 文本box起点x,y,宽,高 x, y, w, h = boundingBox.split(',') x = int(x) y = int(y) w = int(w) h = int(h) # 设置字体字号 word_size = int(lineheight) word_css = "msyh.ttf" font = ImageFont.truetype(word_css, word_size) # 绘制文字 W, H = font.getsize(tranContent) # 文字总长和高 if W > w and int(linesCount) > 1: word_len = len(tranContent) r = w / W limit = int(w / word_size) i = limit tranContent = list(tranContent) while i < word_len: tranContent.insert(i, '') i += limit + 1 tranContent = ''.join(tranContent) X = x + w Y = y + h # 绘制矩形 draw.rectangle((x, y, X, Y), 'yellowgreen', 'wheat') draw.text((x, y), tranContent, 'DimGrey', font=font)if __name__ == "__main__": im = Image.open('d_4.png') textAngle = res['textAngle'] imNew = im.rotate(float(textAngle)) draw = ImageDraw.Draw(imNew) for resRegion in resRegions: boundingBox = resRegion['boundingBox'] linesCount = resRegion['linesCount'] lineheight = resRegion['lineheight'] tranContent = resRegion['tranContent'] dw(boundingBox, linesCount, lineheight, tranContent) imNew = imNew.rotate(-float(textAngle)) del draw # im.save('test.png') imNew.show() imNew.close()

小结

以上代码放在一起就可以跑通,代码写的比较稀碎,只是简单实现这么一个图片文字识别翻译的场景,有兴趣的可以自行研究下OCR实现。

python查找文字在图片中的位置_python实现简单图片文字识别翻译OCR相关推荐

  1. python文字识别并获取位置_python实现简单的文字识别

    将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).今天我们用到的就是一个OCR 库--Tesseract. 首先要安装Tesseract,除 ...

  2. python查找文字在图片中的位置_一键给图片添加上文字、诗词和歌词|还有百万句子库可供查找...

    对于一些人来说,可能在他们的印象里,总觉得给手机拍的照片加上文字太复杂太难,是专业人士才会做的事儿. 其实没那么难,给手机拍的照片加上好看的文字也很简单,今天我就来带给大家一个方法,不光可以给图片添加 ...

  3. python 查找文件内容字符串位置_python 查找目录下 文件名中含有某字符串的文件...

    有坑的地方: 若是代码写成这样: [( os.path.abspath(x)) for x in os.listdir(startPath) ] 此代码只能用于当前目录下,listdir列出的都只是文 ...

  4. python查找文字在图片中的位置_图片中的文字竟然能如此快速提取?OCR文字识别功能简直太强大了...

    想一想你之前如何将线下收集的材料信息采录到线上系统的? 比如作为财务人员,员工凭发票报销费用,但是收集到发票录入信息是需要将发票种类名称.发票代码.纳税人识别号等各种信息录入到系统.你是不是还在一个字 ...

  5. 图片文字提取,清华图片文字提取工具,wrod怎么提取图片文字,怎么把图片里面的文字提取?

    在学习工作生活中,我们会遇到一些只能查看却无法下载的文档,如果想要使用里面的文本内容怎么办,我们只能一边看文档一边打字,但是这样的效率太低了.有没有其他的好的方式呢?比如将文档拍照或者干脆截图,再把图 ...

  6. python查找文字在图片中的位置_使用Python识别图片中的中/英文字

    鉴于有小伙伴咨询图片识别实现的方式,在这里给大家分享一下,并提供主要的接口. 1.准备账号 申请百度开发者平台, 获取图片文字识别, 申请地址: https://console.bce.baidu.c ...

  7. python查找文字在图片中的位置_不装软件就能提取图片中的文字

    关于如何从图片中提取文字用于编辑,本公众号已经发布了2个软件,详见往期神器.今天再给大家推荐一个网站,不用安装软件就可以识别图片中的文字用于编辑,适合临时应急. 使用方法: 1.打开网址(关注公众号后 ...

  8. python切割图片文字_Python+opencv 实现图片文字的分割的方法示例

    Python+opencv 实现图片文字的分割的方法示例 发布时间:2020-08-26 03:28:37 来源:脚本之家 阅读:116 作者:坏小孩90 实现步骤: 1.通过水平投影对图形进行水平分 ...

  9. python批量识别图片中文字_python实现中文图片文字识别--OCR about chinese text--tesseract...

    0.我的环境: win7 32bits python 3.5 pycharm 5.0 1.相关库 安装pillow: pip install pillow 安装tesseract: 自带了英文语言包, ...

  10. python文字识别算法_Python图像处理之图片文字识别(OCR)

    OCR与Tesseract介绍 将图片翻译成文字一般被称为光学文字识别(Optical Character Recognition,OCR).可以实现OCR 的底层库并不多,目前很多库都是使用共同的几 ...

最新文章

  1. uwsgi php,详解uWSGI的编码问题解决方法
  2. C++modular exponentiation模幂运算的实现算法(附完整源码)
  3. 使用Gradle将JAR工件发布到Artifactory
  4. file标签样式修改
  5. 吴恩达机器学习编程题ex1上 单变量线性回归: (python版含题目要求、代码、注解)
  6. 计算机windows7更新失败,win7笔记本电脑配置update失败如何解决
  7. 三人表决器c语言实验报告,项目一:三人表决器的逻辑电路设计与制作
  8. 清华紫光输入法linux,清华紫光输入法
  9. IGS提供的数据(转)
  10. word里表格斜线怎么弄
  11. IPv6: link local 地址fe80
  12. 【调剂】山东大学控制科学与工程学院生物医学实验室课题组招收硕士研究生...
  13. 常见的域名劫持类型及如何修复
  14. IDEA 资源文件配置中文乱码问题
  15. 模拟电路仿真LTspice(3):三极管共发射极放大电路
  16. 机器人学——1.2-三维空间位姿描述
  17. k8s集群二进制部署 1.17.3
  18. 读《金刚经》学心态,读《易经》学生存,读《道德经》学生活
  19. 安卓手机内置NFC模块的使用和开发
  20. Java期末考试试题及参考答案(10)

热门文章

  1. 【功能更新-1:选项统一】利用python生成自制英语试题程序开发
  2. 物联网LoRa系列-2:LoRa系统架构与协议栈详解
  3. 手机淘宝客应用(服务端+客户端+数据库)源码项目
  4. 犀牛建立html格式,犀牛基础操作图文教程,教你rhino如何导出cad文件格式
  5. 北京最最最牛逼的 IT 公司全在这了!
  6. Windows开始菜单快捷方式位置(磁贴)
  7. access实验报告体会_Access2010实验报告
  8. Oracle数据库下载安装和卸载简单说明
  9. 使用IE缓存提取微博相片
  10. 看,程序员是如何白嫖百度文库的!