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

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

3天内不再提示

OCR如何自动识别图片文字

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-31 16:45 次阅读

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,但还是给大家提供了)。

下载完成后,将 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即可,不过相信我,效果不忍直视。

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

    关注

    1

    文章

    788

    浏览量

    30210
  • 数据分析
    +关注

    关注

    2

    文章

    1352

    浏览量

    33738
  • OCR
    OCR
    +关注

    关注

    0

    文章

    137

    浏览量

    16130
收藏 人收藏

    评论

    相关推荐

    AI提取图片里包含的文字信息-解决文字无法复制的痛点

    这个文字识别接口里不仅仅有通用文字识别功能,还支持很多其他功能:比如身份证、驾驶证、保险单、手写文本、火车票,行驶证.......等等功能。还支持用户自定义
    的头像 发表于 07-07 09:37 1032次阅读
    AI提取<b class='flag-5'>图片</b>里包含的<b class='flag-5'>文字</b>信息-解决<b class='flag-5'>文字</b>无法复制的痛点

    OCR文字距离太近应该如何处理?

    ;最近需要做一个OCR文字识别自动测试,之前基本没有接触过图像处理的相关概念,对于纯数学上的算法目前也只是大致在看。 我需要识别
    发表于 05-04 15:07

    说说利用vision assitant实现数字的自动识别

    最近一周无聊试下vision assitant里面的OCR功能,因为之前做的一个机械零件编号检测需要识别上面的数字。简单介绍一下如何做到自动识别。1.查找范例OCR,里面有个
    发表于 03-18 10:39

    [求助] 关于OCR识别后文字定位的问题

    你好,我最近在用NI视觉助手做这么一个工作,自动识别一个字符并计算中心点到某一条已知线段的距离(即求点到直线的距离),我想请教一下,在OCR识别出字符后,给出的结果为:匹配分数,红色框到绿色框左边
    发表于 06-20 22:28

    图片文字转换成word真的只需要这四步

    了方法,就和添加文字一样简单了。 这里向大家推荐一款捷速OCR文字识别软件。这是一款识别效果十分好的文字
    发表于 07-26 10:40

    首发 | 告别手动录入,开放平台OCR上线印刷文字识别

    识别中文、英文、中英文混合的文字内容的识别。在中文人工智能助手咪咕灵犀的翻译功能模块,接入讯飞开放平台的OCR与翻译能力,提供图片中文字
    发表于 05-17 15:18

    基于SnapDragonBoard410C文字识别

    图片格式。简单一句话,就是可以把图片上的文字识别出来。应用的场景有很多,比如说:身份证号码识别,银行卡号
    发表于 09-26 18:11

    什么是OCR

    什么是OCR OCR的英文全称: OCR是英文Optical Character Recognition的缩写,意思是光学字符识别,也可简单地称为
    发表于 04-10 12:55 5784次阅读

    TH-OCR文字识别系统介绍

    TH-OCR文字识别系统的工作原理为通过扫描仪或数码相机等光学输入设备获取纸张上的文字图片信息,OCR
    发表于 12-27 16:04 2026次阅读

    基于FPGA的OCR文字识别技术的深度解析

    识别整体性能为GPU P4 130%,处理延时仅为P4的1/10,CPU的1/30。 1.文字识别技术- OCR OCR技术,通俗来讲就是从
    发表于 01-26 12:19 3733次阅读

    如何在电脑中对图片文字进行局部识别

    呢?    步骤一、图片文字局部识别需要使用到工具,这时候你可以打开电脑中的浏览器,搜索迅捷办公找到迅捷OCR文字
    发表于 11-13 14:07 447次阅读

    cencrack识别图片文字工具V2.8版应用程序免费下载

    cencrack识别图片文字工具是一款免费实用的OCR图片文字的软件-办公必备,软件操作简单
    发表于 07-15 08:00 0次下载

    OCR文字识别视觉检测系统应用程序免费下载

    本文档的主要内容详细介绍的是OCR文字识别视觉检测系统应用程序免费下载。
    发表于 05-28 17:31 24次下载

    OCR识别技术

    在爬虫对验证码进行破解时,经常需要对图片中的文字内容进行识别,这时就需要用到OCR技术了,那么 OCR
    的头像 发表于 03-12 09:07 4285次阅读

    如何用Java几行代码从图片提取文字

    近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片识别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是
    的头像 发表于 10-28 14:05 1764次阅读
    如何用Java几行代码从<b class='flag-5'>图片</b>提取<b class='flag-5'>文字</b>