0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OCR实战教程

汽车电子技术 来源:Python实用宝典 作者:Ckend 2023-02-24 10:36 次阅读

OCR 是光学字符识别(英语:Optical Character Recognition,OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

很早之前就有同学在公众号后台回复希望出一篇 OCR 相关的文章,今天尝试了一下 cnocr 和 tesseract 两个 Python 开源识别工具的效果,给大家分别讲讲两个工具的使用方法和对比效果。

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。

请选择以下任一种方式输入命令安装依赖

  1. Windows 环境 打开 Cmd (开始-运行-CMD)。
  2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
  3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

(选择一)安装 cnocr:

pip install cnocr

看到 Successfully installed xxx 则说明安装成功。

如果你只想对图片中的中文进行识别,那么 cnocr 是一个不错的选择,你只需要安装 cnocr 包即可。

但如果你想试试其他语言的OCR识别,Tesseract 是更好的选择。

(选择二)安装 pytesseract:

首先,无论是Windows还是macOS,你都需要安装 pytesseract:

pip install pytesseract

其次,还需要安装Tesseract.

(macOS) Tesseract 在macOS下可以使用brew安装:

brew install tesseract

非常方便,一条命令即可完成安装。

(Windows )**** 安装Tesseract

需要先下载安装tesseract的程序,然后下载中文简体字预训练好的模型包(尽管本教程不会用tesseract,但还是给大家提供了)。

你可以在Python实用宝典公众号后台回复:**tesseract **打包下载。

下载完成后,将 tesseract-ocr-setup-4.00.00dev.exe 安装到 Tesseract-OCR 指定目录下,复制该目录路径增加到Path中:

图片

并将训练好的模型文件 chi_sim.traineddata 放入该目录中,这样安装就完成了。

2.cnocr 识别图片的中文

cnocr 主要针对的是排版简单的印刷体文字图片,如截图图片,扫描件等。目前内置的文字检测和分行模块无法处理复杂的文字排版定位。

尽管它分别提供了单行识别函数和多行识别函数,但在本人实测下,单行识别函数的效果非常糟糕,或者说要求的条件十分苛刻,基本上连截图的文字都识别不出来。

不过多行识别函数还不错,使用该函数识别的代码如下:

from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr('test.png')
print("Predicted Chars:", res)

用于识别这个图片里的文字:

图片

效果如下:

图片

如果不是很吹毛求疵,这样的效果已经很不错了。

3.pytesseract 识别图片的英文

如果你的OCR目的不是中文而是英文,是需要别的模型的。这里给大家分享Tesseract-OCR,它是一款由HP实验室开发,由Google维护的开源OCR引擎。

Tesseract-OCR 可扩展性很强,你可以基于它训练属于自己的OCR模型。

现在给大家看看它分类英文的效果,代码如下:

import pytesseract
from PIL import Image

image = Image.open('test.png')
code = pytesseract.image_to_string(image, lang='eng')
print(code)

识别的图片:

图片

效果如下:

图片

Tesseract 识别英文的效果真的很不错,中文效果就比较一般了。

如果你想试试Tesseract识别中文,只需要将代码中的eng改为chi_sim即可,不过相信我,效果不忍直视。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1063

    浏览量

    40041
  • 字符
    +关注

    关注

    0

    文章

    229

    浏览量

    24888
  • OCR
    OCR
    +关注

    关注

    0

    文章

    137

    浏览量

    16130
收藏 人收藏

    评论

    相关推荐

    OCR求助

    OCR中的*.abc文件是怎么创建并写入内容的
    发表于 07-01 11:23

    OCR微信公众号实现一号识别

    微信公众账号试水商业化的消息近日引爆自媒体圈。厦门云脉公司把多年对OCR各种产品的研究成果集成于云脉OCR微信公众号中。云脉OCR公众号是首个OCR技术识别类微信公众服务号,集成了名片
    发表于 09-09 18:11

    OCR SDK开发者平台推荐:OCR图像智能字符识别技术

    为了促进业内生态环境良好发展,帮助开发者更好的专注于自己的产品。想让产品实现OCR图像智能字符识别技术,看此帖!楼主吐血为大家找到一个集身份证识别,驾驶证识别,行驶证识别,银行卡识别,文档识别
    发表于 09-25 13:48

    OCR训练字符有什么技巧吗

    想要识别这个PH计上的数字,有下面的图片训练后,还是不能识别,大神们OCR训练有什么技巧吗,怎样数字和小数点都能识别啊,我现在只能识别数字,是需要把图片处理下吗?
    发表于 07-07 17:26

    linux的tesseract-ocr安装

    1. 在ubuntu下可以自动安装sudo apt-get install tesseract-ocr
    发表于 07-15 06:40

    阿里OCR接口记录

    OCR调用文档中需要传入BASE64,感谢Apache
    发表于 08-08 07:48

    国外OCR的matlab程序

    国外OCR的matlab程序
    发表于 05-07 09:15

    嵌入式OCR技术是什么?

    嵌入式OCR技术是什么?
    发表于 12-27 06:44

    Python OCR 识别库-ddddocr

    对他们彻底说拜拜,它的名字是 ddddocr 带带弟弟 OCR 通用验证码识别 SDK 免费开源版。 安装将自动安装符合自己电脑环境的最新 ddddocr。Python 环境需要小于等于 3.9
    发表于 03-30 17:26

    什么是OCR

    什么是OCR OCR的英文全称: OCR是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为文字识别,是文字自动输入的一种方法。它通过扫描和摄像
    发表于 04-10 12:55 5782次阅读

    OCR识别技术

    在爬虫对验证码进行破解时,经常需要对图片中的文字内容进行识别,这时就需要用到OCR技术了,那么 OCR识别技术是如何实现对文字内容“即拍即得”的呢?
    的头像 发表于 03-12 09:07 4284次阅读

    树洞OCR文字识别跨平台的OCR小工具

    ./oschina_soft/tools-ocr.zip
    发表于 05-30 09:42 5次下载
    树洞<b class='flag-5'>OCR</b>文字识别跨平台的<b class='flag-5'>OCR</b>小工具

    flutter_ocr Flutter开发的OCR软件

    ./oschina_soft/flutter_ocr.zip
    发表于 06-24 14:43 3次下载
    flutter_<b class='flag-5'>ocr</b> Flutter开发的<b class='flag-5'>OCR</b>软件

    easyocr:超级简单且强大的OCR文本识别工具

    今天给大家介绍一个超级简单且强大的OCR文本识别工具: easyocr . 这个模块支持70多种语言的即用型OCR,包括中文,日文,韩文和泰文等。 下面是这个模块的实战教程。 1.准备 开始之前
    的头像 发表于 10-30 09:30 1462次阅读
    easyocr:超级简单且强大的<b class='flag-5'>OCR</b>文本识别工具