【Python例】利用 python 进行图片文字信息的提取 --- OCR-EasyOCR


【Python例】利用 python 进行图片文字信息的提取 — OCR-EasyOCR


本文主要用于记录,并使用 python 脚本进行图片文字信息的生成。

什么是 OCR?

img

OCR

OCR(Optical character recognition,光学字符识别)是一种将图像中的手写字或者印刷文本转换为机器编码文本的技术。通过数字方式存储文本数据更容易保存和编辑,可以存储大量数据,比如 1G 的硬盘可以存储数百万本书。

OCR 技术可以将图片,纸质文档中的文本转换为数字形式的文本。OCR 过程一般包括以下步骤:

  1. 图像预处理
  2. 文本定位
  3. 字符分割
  4. 字符识别
  5. 后处理

使用 python 库实现 OCR

对于 OCR 技术来说 python 实际上是一种对数据的交互接口,核心还是后端的一些数据处理,但是 python 的库实在是太多了,这里罗列一些 python 的 OCR 处理的功能库。

  1. easyocr
  2. PaddleOCR
  3. pytesseract
  4. 其他

Easyocr

安装

这里使用 pip 工具进行 python 库构 easyocr 的安装,

python3 -m  pip install easyocr

测试例子

#!/usr/bin/env python3
# python3 -m  pip install easyocr //使用pip工具进行easyocr的安装
import easyocr
import os
# print(os.getcwd())
current_path = os.path.dirname(__file__)  # 设置相对路径
print(current_path)
#视屏截图
test_images1 = (current_path+'/source/test_img1.jpg')
#文本pdf截图
test_images2 = (current_path+'/source/test_img2.png')
#路标图片
test_images3 = (current_path+'/source/test_img3.jpg')
#书本拍照图片
test_images4 = (current_path+'/source/test_img4.jpg')
#设置识别中英文两种语言
reader = easyocr.Reader(['ch_sim','en'], gpu =  False) # need to run only once to load model into memory
#对有视频截图图片进行测试
# result = reader.readtext((test_images1), detail = 0)
# print(result)
#对于普通pdf文本截图进行测试
# result = reader.readtext((test_images2), detail = 0)
# print(result)
#对于普通pdf文本截图进行测试
# result = reader.readtext((test_images3), detail = 0)
# print(result)
#对于书本的文本照片进行测试
result = reader.readtext((test_images4), detail = 0)
print(result)

运行脚本,运行时间有点长,

对比结果

结果如下:

测试一:

img

['17:28', '8月10日周三', '100%', '7.3万', '1.', '计算机早期历史-Early Computing', 'R2 90人正在看', '十关注', '篱勺(  跳M飙-', '揠雠h鄙  熊?盥#跳:噩?ia?+(枧?龅 长制靓视', '揠胸人名8 @adles [@@% Ada Lovelace', "@2:20  最f跳['熨篡氍。举例如何用", '@', '@485 C@mUiep  (.)减指l肌器', '@45  机罂E轨〈慰8  盥-踯黛器。箭-^邸脚乘除胸Q噩', '@@844  炮剿)武精邋要珧黛酆召召l,查表e [:轰颏:n巅孺贯歃-U「患', '@30 Gailes  66a@9t踮%澄2', '瓷艴谴筹阋。想曲子粝规+8飙恩:圃跳黛视', "@88@ [vease龄e粝飙~孓暇憩翟廓@唾敝 '俭9翩 ", '@@?写 ,回簪9@牢 谗 Hal@men酶o胤冼制患飙)长翅1邑n綮', '翻谮@-魈膨胸2c筝', '徽@ 醮陬皮', '@sh (@wse 崇幕组颛傩', '00:00', '11:53', '选集', '倍速', '1080P', '十']

测试二:

img

['木克土', '*c币弯', '1-2', '五行相生相克示意图', '2.五行相克', '五行相克。指木。火  士。金  水之间存在着有序的递相克制。制约和抑制的关系。', '五行相克次序是:  木克士。士克水,水克火 火克金 ,金克木。在五行相克关系中,', '任何一行都具有', '\'克我"和 "我克"两方面的关系。', '《内经》把相克关系称为 "所胜"', '"所', '不胜"关系: "克我"者为我 "所不胜", "我克"者为我 "所胜"。因此。五行相克。实际上是五', '行中的某一行对其所胜行的克制和制约。', '如以木为例,', '由于木克士。故 "我克"者为士,', '土', '为木之 "所胜"; 由于金克木。故 "克我"者为金。金为木之 "所不胜"(图1-2)', '木生火一', '火生土', '3', '{', '*', 's', '王克水', '金克术|']

测试三:

img

['RD.', '酉环 路', 'RD.', '渔婆路', 'YUPO RD。', '安 宁  路', '北 N', '长田岸路', 'CHANGTIANAN', '靖_安  路', 'JIN G AN R0', 'X IHU AN']

测试四:

[img]

['94', '项目:  将带有美囤风格日期的文件改名为欧洲风格日期', '假定你的老板用电子邮件发给你上千个文件,文件名包含美困风格的日期', '(MM-DD-YYYY), 需要将它们改名为欧洲风格的日期', '(DD-MMYYYY)。 手工完', '成这个无聊的任务可能需要几天时间 !让我们写一个程序来完成它。', '下面是程序要做的事:', '检查当前工作目录的所有文件名。寻找美国风格的日期。', '。 :', '如果找到,将该文件改名,交换月份和日期的位置,', '使之成为欧洲风格。', '0', '这意味着代码需要做下面的事情:', "'", '创建一个正则表达式。可以识别美国风格日期的文本模式。', '0', 'U', '调用 os.listdir0, 找出工作目录中的所有文件。', " '-", '循环遍历每个文件名,利用该正则表达式检查它是否包含日期。', '如果它包含日期。用 shutil.move0对该文件改名。', '` 。', '对于这个项目,打开一个新的文件编辑器窗口,将代码保存为 renameDates:py c', '0']
序号参考描述结果表述
测试 1视频截图照片标准字符,如时间,标题能识别,带有背景干扰的字体没有很好的识别出来
测试 2PDF 文本截图因为是 pdf 文本所以字体清晰,大多都识别出来了,有少许倒立的字符识别不好
测试 3交通路牌照片字符识别还行,内容识别效果较好
测试 4书本内容照片因为书本印刷,会有渗墨,所以造成了一些背景干扰,则有个别字识别不好

结论

easyocr 存在一些背景干扰的文字识别正确率的问题,可能需要一些调整,但是对于一些 pdf 等标准数字文档的截图还是可以识别并且进行内容提取的。

PaddleOCR

安装

这里使用 pip 工具进行 python 库构的安装,

python3 -m  pip install 

并未进行测试

测试例子

#!/usr/bin/env python3

对比结果

锟钅烤锟斤

序号参考描述结果表述
测试 1视频截图照片锟钅烤锟斤
测试 2PDF 文本截图锟钅烤锟斤
测试 3交通路牌照片锟钅烤锟斤
测试 4书本内容照片锟钅烤锟斤

结论

锟钅烤锟斤

pytesseract

安装

这里使用 pip 工具进行 python 库构的安装,

python3 -m  pip install 

并未进行测试

测试例子

#!/usr/bin/env python3

对比结果

锟钅烤锟斤

序号参考描述结果表述
测试 1视频截图照片锟钅烤锟斤
测试 2PDF 文本截图锟钅烤锟斤
测试 3交通路牌照片锟钅烤锟斤
测试 4书本内容照片锟钅烤锟斤

结论

锟钅烤锟斤

参考文档

  • 适合小白的入门 OCR - CSDN
  • PaddleOCR 文档说明 - GitHub
  • EasyOCR 项目仓库地址 - GitHub
  • EasyOCR 项目实践 - 知乎
  • PaddleOCR 项目仓库地址 - GitHub
  • pytesseract 项目 - CSDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253644.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Python提取图片中的文字信息

Python提取图片中的文字信息 使用的Python库 Python tesseract是Python的一个光学字符识别(OCR)工具。也就是说,它将识别并“读取”嵌入图像中的文本。 Python tesseract是Google tesseract OCR引擎的包装器。它还可用作tesseract的独立调…

Python识别图片中的文字

Python识别图片中的文字 一、前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是…

python提取图片中的文字

python提取图片中的文字 准备工作原图片完整代码结果预览 OCR,全称Optical character recognition,中文译名叫做光学文字识别。它把图像中的字符,转换为机器编码的文本的一种方法。OCR技术在印刷行业应用得非常多,也广泛用于识别图…

python代码提取图片文字

步骤一:安装两个库 需要安装pytesseract和PIL两个库,然后还要安装tesseract-ocr识别引擎 问题一:安装两个库失败 这个博主讲的很详细参考链接lpython3安装pil报错 使用pip命令安装这两个库(pip命令无法使用的参考我的这篇文章将…

【Python • 图片识别】pytesseract快速识别提取图片中的文字

提示:本文多图,请手机端注意流量。 文章目录 前言一、配置环境1. 安装python依赖2. 安装识别引擎安装tesseract识别引擎(可跳过)验证是否安装成功 二、使用步骤1.引入库2.提取图片文字3.运行效果 总结完整代码 前言 利用python做…

MySQL进阶- Linux安装 和 索引

目录 Linux安装索引索引的概述索引的结构索引结构的介绍BtreeBtreeHash 索引的分类索引的语法(创建,查看,删除等)SQL性能分析SQL的执行频率(查看SQL的执行频率)慢查询日志show profilesexplain执行计划 索引…

Nginx同时支持Http和Https的配置

现在的网站支持Https几乎是标配功能,Nginx能很好的支持Https功能。下面列举一个配置同时支持Http和Https的功能。 需要注意的是:既然选择使用Https,就是为了保证通信安全,那么就没必要再用Http进行通信了。在URL中还支持Http的方式…

Nginx配置同时支持http和https两种方式访问

http: https: Nginx的ssl模块安装 进入到目录的sbin目录下,输入 #注意这里是大写的V,小写的只显示版本号 ./nginx -V 如果出现 (configure arguments: --with-http_ssl_module), 则已安装(下面的步骤可以跳过,直接进…

HTTP 和 HTTPS 的区别(面试常考题)

前言 无论是在校学习还是找工作的时候,老师和面试官都问过同学 HTTP 和 HTTPS 的区别。平时上网的时候也没有关注这个问题,只是知道计算机网络里 HTTP 的概念,所以最近才查资料好好补补这一块。其实这一块的知识延伸很广,如果之前…

网站开发(一)http和https的区别 http是什么?http协议的特性 http与https网站通信协议两者的有什么不同呢?

目录 一、前言 二、HTTP是什么? 1、HTTP发展阶段 2、HTTP工作原理 3、HTTP的工作特性 三、HTTP和HTTPS区别 1、http与https端口不同 2、http和https应用 ? ? ? ? 2.1 http应用 ? ? ? ? 2.2 https应用 3、 http和https区别简易图 一、前言 HTTP是…

HTTP和HTTPS区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此&…

HTTP和HTTPS的工作原理及区别

一、HTTP和HTTPS的基本概念 HTTP(HyperText Transfer Protocol:超文本传输协议):是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从Web服…

Spring Boot项目同时使用http和https

有些时候项目需要同时监听在不同的端口上,比如同时监听http80和https 443端口,这时我们需要自定义web server。 假设我们需要项目同时使用http和https两种协议提供服务,分别使用端口80和443。 我们知道Spring Boot内置了tomcat,jetty,under…

http和https的区别https的连接方式

首先了解什么是http协议,http协议是超文本传输协议,他存在的目的是为浏览器和服务器之前传输信息。但是http是明文传输的,不管是谁,只要抓取了浏览器传向服务器,或者服务器传向浏览器的信息,就可以获取里面…

http和https有什么区别?

ps:https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密…

HTTP和HTTPS的区别详解

1.HTTP的缺点 (点击题目解锁惊喜↑↑) 通信使用明文(不加密),内容可能会被窃听。不验证通信方的身份,因此有可能遭遇伪装。无法证明报文的完整性,所以有可能已遭篡改。某些特定的web服务器和特…

HTTP和HTTPS请求的整个过程详解

HTTP和HTTPS请求的整个过程详解 小橙子 小橘子的日记 4月17日 HTTP和HTTPS的请求流程也是面试的时候一大考点,如果不掌握的话,容易丢失印象分。这两种请求都是基于TCP/IP,不明白的请看上一篇文章。这里总结HTTP/HTTPS请求的整个过程&#xf…

http和https协议有什么区别

1、https协议需要到CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。(原来网易官网是http,而网易邮箱是https。) 2、http是超文本传输协议,信息是明文传…

浅谈 HTTP 和 HTTPS

很多前端伙伴问题有没有体系的面试题? 今天为大家推荐一款刷题神奇哦 点击链接访问牛客网 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,赶快来装备自己吧!助你面试稳操胜券,solo全场面试官 浅谈 HTTP 和 …

http与https概述

http与https的区别 1 背景2 基本概念3 区别4 工作原理4.1 HTTP工作原理4.2 HTTPS工作原理 5 HTTPS优缺点5.1 优点5.2 缺点 6 HTTP请求消息和响应消息6.1 请求消息6.2 响应消息 1 背景 超文本传输协议(HTTP协议)被用于在Web浏览器和网站服务器之间传递信…