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

您所在的位置:网站首页 python如何读取图片的定位信息 【Python例】利用 python 进行图片文字信息的提取

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

2024-07-10 11:27| 来源: 网络整理| 查看: 265

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

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

img

OCR

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

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

图像预处理文本定位字符分割字符识别后处理 使用 python 库实现 OCR

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

easyocrPaddleOCRpytesseract其他 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 - CSDNPaddleOCR 文档说明 - GitHubEasyOCR 项目仓库地址 - GitHubEasyOCR 项目实践 - 知乎PaddleOCR 项目仓库地址 - GitHubpytesseract 项目 - CSDN


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3