Python Tesseract 图片识别-小操练

小科普 光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息. Tesseract的OCR引擎最先由HP实验室于1985年研发,2005年,交由Google对Tesseract进行改进、优化工作。

准备工作

1.PIL 、Pytesseract

from PIL import Image
from pytesseract import image_to_string

2.安装引擎 Tesseract-OCR

ok 用画图工具整张简单的图片(vm3.png)小试牛刀

上代码

from PIL import Image
from pytesseract import image_to_string

img = Image.open("vm3.png");
text = image_to_string(img)
print(text)

别走,留步,真的只有那么多,不信看结果

支持中文

but,Tesseract是老外开发的,默认不支持中文,需要我们加个中文语言包 将文件chi_sim.traineddata (密码:nd6p) 放到安装目录:Tesseract-OCR\tessdata文件夹内,再整张图

代码骚作修改(,lang='chi_sim')即可

from PIL import Image
from pytesseract import image_to_string

img = Image.open("vm3.png");
text = image_to_string(img,lang='chi_sim')
print(text)

没毛病

骚微复杂图像处理

其实,复杂图片的来不了,需要处理一下,比如这张图片:

这样处理:

img = Image.open("vm.png");
imgry = img.convert("L")
threshold = 140
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
out = imgry.point(table, '1')
out.show()

show()一下处理后的结果:

最后,整合一下:

img = Image.open("vm.png");
imgry = img.convert("L")
threshold = 140
table = []
for i in range(256):
    if i < threshold:
        table.append(0)
    else:
        table.append(1)
out = imgry.point(table, '1')
text = image_to_string(out)
print(text)

我就知道你会回来,如果你在运行中遇到以下问题:


tesseract is not installed or it's not in your path

一图解万愁


Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language 'eng' Tesseract couldn't load any languages!

添加环境变量:

变量名:TESSDATA_PREFIX
变量值:testdata的路径

如果加了还不行,重启电脑!

如果还不行,试试百度OCR的吧 如果你用来作为验证码识别。可能会用到截屏和裁剪

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HansBug's Lab

【LATEX】个人版latex论文模板

以下是我的个人论文模板,运行环境为Xelatex(在线ide:Sharelatex.com) 鉴于本人常有插入程序的需求,故引用了lstlisting \Req...

426120
来自专栏用户2442861的专栏

Caffe中LMDB的使用

http://rayz0620.github.io/2015/05/25/lmdb_in_caffe/

32610
来自专栏AI科技大本营的专栏

不会用Photoshop抠图?Mask R-CNN助你一键“除”人

翻译 | 林椿眄 编辑 | 费棋 【AI科技大本营导读】:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可...

44670
来自专栏逍遥剑客的游戏开发

Nebula3绘制基本图元

14760
来自专栏数据派THU

独家 | 手把手教数据可视化工具Tableau

前言 数据的世界正在发生急剧变化,任何人都应该访问自己需要的数据,并具备获取任何数据的洞察力,而tableau正是帮我们洞察数据的好帮手。 Tableau作为B...

70370
来自专栏数据小魔方

直方图

今天跟大家分享直方图的制作技巧! ▼ 直方图是统计描述常用的图表工具,虽然跟柱形图外表有点类似,但是制作方法却要比柱形图复杂得多,今天要跟大家分享两种直方图的制...

30560
来自专栏新智元

TensorFlow正式发布1.5.0,支持CUDA 9和cuDNN 7,双倍提速

来源:Github 编译:费欣欣 【新智元导读】TensorFlow今天正式发布了1.5.0版本,支持CUDA 9和cuDNN 7,进一步提速。并且,从1.6版...

32260
来自专栏机器之心

快速开启你的第一个项目:TensorFlow项目架构模板

31770
来自专栏葡萄城控件技术团队

ActiveReports 报表应用教程 (3)---图表报表

葡萄城ActiveReports报表的图表控件支持绝大多数常用的二维和三维图表类型,包括XY图表和财务图表。通过使用图表控件的定制功能,如修改坐标轴、图注、图例...

24970
来自专栏计算机视觉及音视频工程

YVU格式Y分量存储为灰度

 Image为Android 5.0以上提供的类,用于保存YUV420格式的集合。

26360

扫码关注云+社区

领取腾讯云代金券