精华内容
下载资源
问答
  • 因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用Anaconda.pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换文本。pytesser调用了tessera...

    http://blog.sina.com.cn/s/blog_628cc2b70101cjvp.html

    Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用Anaconda.

    pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换成文本。pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别图片中的文字。pytesser的使用步骤如下:

    首先,安装Python2.7版本,这个版本比较稳定,建议使用这个版本。

    其次,安装python opencv,请自行百度之。

    然后,安装PIL工具,下载的地址是:http://www.pythonware.com/products/pil/,pytesser的使用需要PIL库的支持。from pytesser.pytesser import image_to_string

    from PIL import *

    import Image

    import ImageEnhance

    image = Image.open(r"D:\workstation\driving_licence.jpg")

    #使用ImageEnhance可以增强图片的识别率

    enhancer = ImageEnhance.Contrast(image)

    image_enhancer = enhancer.enhance(4)

    print image_to_string(image_enhancer)

    Python Error in image_to_string

    展开全文
  • 主要介绍了python文本转换图片输出的方法,涉及Python操作文本图片的相关技巧,非常具有实用价值,需要的朋友可以参考下
  • 有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候。...使用 PIL 将文字转换图片说转换其实并不恰当,真实的过程是:先在内存中生成一张图片,将需要的文字...

    有时候,我们需要将文本转换为图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候。目前类似的工具已经有了不少,不过我觉得用得都不是很趁手,于是便自己尝试实现了一个。

    在 Python 中,PIL (Python Imaging Library) 是最常用的绘图库,自然地,尝试从 PIL 开始。

    使用 PIL 将文字转换为图片

    说转换其实并不恰当,真实的过程是:先在内存中生成一张图片,将需要的文字绘制到这个图片上,再将图片保存到指定位置。代码如下:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    # -*- coding: utf-8 -*-

    import os

    import Image, ImageFont, ImageDraw

    text= u"这是一段测试文本,test 123。"

    im= Image.new("RGB", (300,50), (255,255,255))

    dr= ImageDraw.Draw(im)

    font= ImageFont.truetype(os.path.join("fonts","msyh.ttf"),14)

    dr.text((10,5), text, font=font, fill="#000000")

    im.show()

    im.save("t.png")

    生成的图片如下:

    1-200I0121G8.png

    杯具发生了,汉字没有正常显示!

    网上搜索了一圈,发现这好像是 PIL 的一个 bug,PIL 目前的版本中,不能正确处理非 ASCII 字符的点阵字体的渲染。对于像宋体这样的字体来说,只有 >= 18px 时,才会被当作矢量字体处理,也就是说只有当字体 >= 18px 时,文字才能正常显示:

    ?

    1

    font= ImageFont.truetype(os.path.join("fonts","simsun.ttc"),18)

    效果如下:

    1-200I0121G8-50.png

    增大字体虽然解决了汉字不能正常显示的问题,但还是没有解决我们一开始的初衷:使用点阵字体进行渲染。但是,这个目标使用现阶段的 PIL 似乎有点难以实现了。

    使用 pyGame 渲染点阵字体

    Python 的第三方模块或组件非常多,可用来绘图的除了 PIL 之外,就还有Pycairo、matplotlib、pyGame 等。在这儿,我使用 pyGame 来完成点阵字体的渲染工作。

    代码如下:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    # -*- coding: utf-8 -*-

    import os

    import pygame

    pygame.init()

    text= u"这是一段测试文本,test 123。"

    font= pygame.font.Font(os.path.join("fonts","simsun.ttc"),14)

    rtext= font.render(text,True, (0,0,0), (255,255,255))

    pygame.image.save(rtext,"t.jpg")

    效果如下:

    1-200I0121G9.jpg

    可以看到,使用 pyGame ,点阵字体的问题终于搞定了。

    结合 PIL 和 pyGame

    pyGame 虽然可以解决点阵字体的渲染问题,但讲到对图片的处理,还是 PIL 更为强大。那么,我们为什么不把两者结合起来呢?用 pyGame 渲染点阵字体,然后用 PIL 生成整张图片。

    代码如下:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    # -*- coding: utf-8 -*-

    import os

    import StringIO

    import Image, ImageFont, ImageDraw

    import pygame

    pygame.init()

    text= u"这是一段测试文本,test 123。"

    im= Image.new("RGB", (300,50), (255,255,255))

    #dr = ImageDraw.Draw(im)

    #font = ImageFont.truetype(os.path.join("fonts", "simsun.ttc"), 18)

    font= pygame.font.Font(os.path.join("fonts","simsun.ttc"),14)

    #dr.text((10, 5), text, font=font, fill="#000000")

    rtext= font.render(text,True, (0,0,0), (255,255,255))

    #pygame.image.save(rtext, "t.gif")

    sio= StringIO.StringIO()

    pygame.image.save(rtext, sio)

    sio.seek(0)

    line= Image.open(sio)

    im.paste(line, (10,5))

    im.show()

    im.save("t.png")

    原理很简单,先将文字用 pyGame 渲染为图片,将渲染结果保存在一个 StringIO 对象中,然后再用 PIL 加载它。使用 StringIO 的好处是,一切操作都是在内存中进行的,不需要先将它保存到硬盘再用 PIL 读取,因为硬盘 IO 的效率相对来说是比较低的。

    最终效果如下:

    1-200I0121G9.png

    到这儿,使用 Python 将文本转为图片的功能就基本实现了,用到了 PIL 和 pyGame。

    当然,上面的代码还只解决了最基本的问题,一个真正可用的文本转图片工具,还应该解决以下问题:长文本换行问题、英文单词断字问题、标点符号换行问题等。关于这些问题的分析篇幅也不短,这一次就先略过了。下面是一个综合考虑了诸多因素之后生成的《荷塘月色》的效果图:

    1-200I0121H0.jpg

    展开全文
  • 使用python pytesseract库识别验证码中的文字,图片中的文本内容运行环境 python3.6, PIL , pytesseract,安装tesseract-ocr原理tesseract-ocr目前是谷歌维护的开源OCR识别引擎,python的pytessseract库本质是对...

    使用python pytesseract库识别验证码中的文字,图片中的文本内容

    运行环境 python3.6, PIL , pytesseract,

    安装tesseract-ocr

    原理

    tesseract-ocr目前是谷歌维护的开源OCR识别引擎,python的pytessseract库本质是对tesseract-ocr的封装和调用,库本身不能进行识别,识别的工作都是tsseract光学字符识别引擎在干

    环境搭建

    运行环境:python3.6+PIL+pytesseract

    依赖:tesseract-ocr,语言包

    安装:

    1.python库的安装用pip完成

    2.下载tesseract-ocr-setup-3.02.02.exe并安装

    3.下载相应的语言包,如中文包依赖chi_sim

    环境搭建:

    1.确认tesseract-oc的安装路径,默认:C:\Program Files (x86)\Tesseract-OCR

    2.确认tesseract.exe和tessdata文件夹

    3.在开发程序环境中,导入tesseract.exe执行文件

    4.将tessdata文件夹复制在程序所在的目录中,保持平级

    5.下载chi_sim.traineddata,复制在tessdata文件夹中,用来识别中文字符

    程序环境搭建结束

    附录:

    1.tessdata 目录存放的是语言字库文件

    测试识别验证码

    from PIL import Image

    import pytesseract

    image=Image.open(imagePath) #打开识别的图片

    cod=pytesseract.image_to_string(image,lang=’chi_sim’) #用pytesseract识别图片文字,lang指定语言包

    print(cod) #打印识别的字符串

    pytesseract.image_to_string参数设置

    pytesseract.image_to_string(image,lang=’chi_sim’,config=’-psm 7′)

    .image_to_string(

    image #设置图片的路径或名

    lang=” #指定解析文件的语言包

    config=’-psm num’ #-psm为tesseract.orc解析图片的参数

    )

    tesseract常见问题

    1.安装问题,提示make sure TESSDATA_PREFIX environment varialbe….

    tesseract-oc安装完成后,默认会自动进行环境变量配置,在dos界面中输入tesseract,显示tesseract的help用法,安装成功

    提示make sure TESSDATA_PREFIX environment varialbe,需要在环境变量中新建TESSDATA_PREFIX变量,地址为tesseract的安装路径

    2.tesseract用法

    直接在dos命令行使用: tesseract 图片名 输出文件名 [-l 字库文件] [-psm pagesegmode] [configfile]

    结果在命令行所在路径或指定路径生成指定文件名的文本文件

    ==> tesseract 1.jpg 1.txt -l chi_sim+equ+eng

    -l是指定使用的包:chi_sim是中文识别包,equ是数学公式包,eng是英文包

    3.tesseract参数

    tesseract imagename outputbase [-l 字库文件] [-psm pagesegmode] [configfile]

    -l 为指定解析文本的语言包,如中文用 chi_sim,语言包路径在tessdata文件夹中,且后缀为.traineddata

    -psm 7 psm为指定tesseract code.jpg图片是一行文本这个参数可以减少识别错误率. 默认为 3

    configfile 参数值为tessdata\configs 和 tessdata\tessconfigs 目录下的文件名.

    tesseract.orc help

    Usage:tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]

    pagesegmode values are:

    0 = Orientation and script detection (OSD) only.

    1 = Automatic page segmentation with OSD.

    2 = Automatic page segmentation, but no OSD, or OCR

    3 = Fully automatic page segmentation, but no OSD. (Default)

    4 = Assume a single column of text of variable sizes.

    5 = Assume a single uniform block of vertically aligned text.

    6 = Assume a single uniform block of text.

    7 = Treat the image as a single text line.

    8 = Treat the image as a single word.

    9 = Treat the image as a single word in a circle.

    10 = Treat the image as a single character.

    -l lang and/or -psm pagesegmode must occur before anyconfigfile.

    一些经验

    1.可以将突破转换成灰度,对于图片较大的,可以使用缩略图,像素过高和过低,都影响准确 imgry = img.convert(‘L’) imgry.thumbnail(size=(1024,1024))

    展开全文
  • 龙源期刊网http://www.qikan.com.cn基于Python图片文本识别系统的研究作者:韩琳来源:《科学与财富》2019年第20期近年来随着计算机技术的不断发展,Optical Character Recognition(光学字符识别,简称“OCR”)...

    龙源期刊网

    http://www.qikan.com.cn

    基于

    Python

    的图片文本识别系统的研究

    作者:韩琳

    来源:《科学与财富》

    2019

    年第

    20

    近年来随着计算机技术的不断发展,

    Optical Character Recognition

    (光学字符识别,简称

    “OCR”

    )应用的领域更加的广泛,而图片文字识别就是其中重要的一个。目前图片文字识别的

    准确率并没有达到

    100%

    ,这也成为了图片文字识别发展领域的一大瓶颈,因此要去探索一个

    好的图片文字识别算法是非常有意义的。

    图片文字识别系统的基本流程为:获得图片、去噪处理、二值化处理、矫正图片、行查

    找、文字定位、细化处理、文字特征扫描、查询显示文字。

    OpenCv

    提供了图片处理的基本函

    数,例如数据矩阵的遍历,图片的存储等,去噪处理中的平滑处理、二值化处理等。矫正图片

    就是将图片按照文字的行摆正,该步骤是比较的关键一步,后面的行定位等都是依赖于图片矫

    正。文字的行定位和文字定位即确定文字的区域,方便文字特征扫描,细化处理是将文字细化

    为一个像素,而不破坏连通性。细化处理是方便特征扫描而做的处理使数据库中存储文字特征

    码和

    UTF-8

    编码对应起来。涉及到的相关技术主要如下。

    1. OpenCv

    OpenCv

    是一个基于

    BSD

    许可发行的可以跨平台的计算机视觉库。它可以运行在

    Windows

    Linux

    等操作系统之上,它是由一系列的

    C

    函数和少许的

    C++

    类构成,同时还提供了

    Python

    Matlab

    等語言的接口,实现了计算机视觉和图像处理等方面的很多通用算法。

    包含的五个基本模块,功能非常的强大。可以在设计中使用的是图形处理模块,结构图如

    下所示:

    2. UTF-8

    编码

    UTF-8

    是一种针对

    Unicode

    的可变长度字符编码,又称万国码,由

    Ken Thompson

    1992

    年创建。

    UTF-8

    1

    6

    个字节编码

    Unicode

    字符。在计算机内存中,统一使用

    Unicode

    码,当我们用记事本编辑的时候,从文件中读取的

    UTF-8

    字符被转换为

    Unicode

    字符到内存

    里,编辑完成后,保存的时候再把

    Unicode

    转换为

    UTF-8

    保存到文件。

    3.Flask

    框架

    在大多数的标准当中,

    Flask

    是一个小型的框架,小到可以称之为

    微框架

    Flask

    3

    主要依赖,分别为调试和

    Web

    服务器网关接口以及路由。子系统是由

    Werkzeug

    提供,模板系

    统是由

    Jinja2

    提供,命令行集成是由

    Click

    提供。这些依赖全部都是由

    Flask

    的开发者

    Armin

    Ronacher

    开发的。

    展开全文
  • 本文实例讲述了python文本转换图片输出的方法。分享给大家供大家参考。具体实现方法如下:#-*- coding:utf-8 -*-from PIL import Image,ImageFont,ImageDrawtext = u'欢迎访问,...
  • 感谢 @xavierskip 的评论!终于摸出来了。。收获良多。用二进制形式打开文件后,read()出来的字符串叫做...然后就是把这个字符串里的每个字符用ord()转换数字,再转成二进制表现形式的字符串就可以了。要注意的是...
  • python输出汉字字库问题1:假设我们知道汉字编码范围是0x4E00到0x9FA5,怎么从十六进制的编码转成人类可读的字呢?问题2:怎么把unicode编码的字写入文件呢,如果直接用open()的话,会提示UnicodeEncodeError: '...
  • python输出汉字字库问题1:假设我们知道汉字编码范围是0x4E00到0x9FA5,怎么从十六进制的编码转成人类可读的字呢?问题2:怎么把unicode编码的字写入文件呢,如果直接用open()的话,会提示UnicodeEncodeError: ...
  • 使用Python文本转为图片

    千次阅读 2012-06-05 20:25:59
    有时候,我们需要将文本转换图片,比如发长微博,或者不想让人轻易复制我们的文本内容等时候。目前类似的工具已经有了不少,不过我觉得用得都不是很趁手,于是便自己尝试实现了一个。你可以先访问一下查看效果:...
  • python文字转换图片

    千次阅读 2014-05-09 22:39:45
    现在又很多工具能将文字转换图片,这样就可以发送长微博,其实python实现这很容易的,主要就是用到了pygame模块 import os import pygame from pygame.locals import * pygame.init() text = u"这是一段测试...
  • Python文本转为图片

    千次阅读 2019-04-22 13:36:18
    pillow安装 pip install pillow 然后引入库 # -*- coding: utf-8 -*- from PIL import Image,ImageFont,ImageDraw import os from PIL import Image,...text = u"这是一段测试文本,test 123。" im = Image.new("R...
  • 场景描述图片识别翻译前图片识别翻译后第一步引入所需要的库from PIL import ImageFontfrom PIL import Imagefrom PIL import ImageDrawimport hashlibfrom urllib import parsefrom urllib import requestimport ...
  • 笔者小白在收集印刷体汉字的深度学习训练集的时候,一开始就遇到的了一个十分棘手的问题,就是如何获取神经网络的训练...那么,首先如何用python输出汉字字库的文字?笔者查到在计算机中汉字编码范围是0x4E00到0x9F...
  • Tesseract是一个开源 OCR 引擎,可以直接通过命令行使用,或者通过使用API从图像中提取文本。它为多种语言提供了API...本文介绍了Windows下Tesseract的安装和如何通过Python调用Tesseract API进行图片文字识别和提取。
  • 使用 PIL 将文字转换图片 说转换其实并不恰当,真实的过程是:先在内存中生成一张图片,将需要的文字绘制到这个图片上,再将图片保存到指定位置。代码如下: # -*- coding: utf-8 -*- import os import Image, ...
  • 场景描述实现类似微信扫一扫中翻译功能,即拍照商品,一般为英语、韩语、日语等商品描述,进行文字识别后,进行在线翻译。图片识别翻译前图片识别翻译后第一步引入所需要的库from PIL import ImageFontfrom PIL ...
  • 最近老师交代了一个把图片格式的文本转为文字的任务,查了一下某宝和百度里的图片转工具,好像不是要花钱,就是很麻烦。于是查了几篇博客做了一个图片文字的小工具。ref使用百度文字识别API进行图片文字的识别_...
  • python 语音播报文本 语言模型设计 (Language Model Designing) In this article, we will be covering the basics of text to speech translation. I will give a brief introduction on text to speech and then I...
  • 使用python编写,实现将图片转换成相似的文字图案。生成的文本大小可以更改,程序定义四个参数:转换图片地址 宽 高 生成的目标文件地址。
  • 操作系统:ubuntu 16.04 python3版本:3.5.2 ...安装PIL模块,在python2中有这个模块,在python3中需要安装pillow模块,这个模块包含了PIL模块 2) sudo pip3 install pytesseract 2、下载tersseract-oc...
  • Python实现图片转ASCII文本图形

    千次阅读 2018-06-08 17:18:11
    Python实现图片转ASCII文本图形 视频讲解:https://v.qq.com/x/page/u0681ujebmb.html 演示PPT及源代码下载: #coding=utf-8 import sys, random, argparse#argparse库用于命令行解析 import numpy as np #numpy...
  • 网上查了下相关资料,了解到pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的文字转换文本。 pytesser调用了tesseract。当在Python中调用pytesser模块时,pytesser又用tesseract识别...
  • python图片文本识别的简单实现

    千次阅读 2017-03-14 23:48:23
    Python图片文本识别使用的工具是PIL和pytesser。因为他们使用到很多的python库文件,为了避免一个个工具的安装,建议使用Anaconda. pytesser是谷歌OCR开源项目的一个模块,在Python中导入这个模块即可将图片中的...
  • python 图片文字灰度图

    千次阅读 2018-07-04 15:45:02
    4.打开cmd窗口,输入命令 python 1.py 1.png (后两项分别是py文件名和图片名) 5.关闭程序,打开放图片的目录,发现会多出来一个output.txt文档,打开,把字体调小即可看到文字图   原图(1920*1080):...
  • 我正在尝试将.png图像转换为字符串并通过django api发送,但会导致错误from django.shortcuts import renderfrom django....
  • Python数据挖掘——文本分析

    万次阅读 多人点赞 2018-05-13 11:37:44
    一、定义:文本挖掘:从大量文本数据中抽取出有价值的知识,并且利用这些知识重新组织信息的过程。二、语料库(Corpus)语料库是我们要分析的所有文档的集合。# -*- coding: utf-8 -*- import os import os.path ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,200
精华内容 5,680
关键字:

python图片文字转换文本

python 订阅