python+tesseract 实现OCR-图像文字识别
一前提:python环境,系统:mac系统
1安装依赖包
安装pillow和tesseract
pip install pillow
brew install tesseract
pip install pytesseract
tesseract -v 查看版本
2下载中文字体包
下载地址:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata
字体包注意需要和tesseract版本保持一致。不一致可能会报错。
将下载的中文字体包放在安装目录下:
cp chi_sim.traineddata /usr/local/Cellar/tesseract/4.1.1/share/tessdata/
cp命令报错的话,命令前面加sudo
3命令行实现文字识别
中文识别(部分英文识别错误):tesseract 2.png 8 -l chi_sim
中英文识别:tesseract 2.png 8 -l chi_sim+eng
识别结果会存放在8.txt文件中
4python代码实现文字识别
from PIL import Image
import pytesseractdef erzhi(image):# 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。Img = image.convert('L')# 自定义灰度界限,大于这个值为黑色,小于这个值为白色thresholdMax = 256thresholdMin = 180table = []for i in range(256):if (i < thresholdMax) & (i > thresholdMin):table.append(0)else:table.append(1)# 图片二值化photo = Img.point(table, '1')# photo.save("/vd/5-11.png")return photoif __name__ == '__main__':path = '/vd/5.png'image = Image.open(path)photo = erzhi(image)text = pytesseract.image_to_string(photo, lang='chi_sim+eng')print(text)
5识别效果
示例图片:5.png
二值化后:(二值化提高识别率)5-11.png
识别效果:
6.常见问题
TESSDATA_PREFIX 环境变量问题
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file /user/local/share/tessdata/chi_sim.traineddata 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! Could not initialize tesseract.')
解决办法:
1,win版本的网上查配置环境变量,mac 版本的试一下这个:
export TESSDATA_PREFIX=/usr/local/Cellar/tesseract/4.1.1/share/tessdata
2,检测chi_sim.traineddate下载版本与tesseract版本是否一致
3,注意依赖包的装载顺序,如果先装了pytesseract,再装tesseract时候,会提示已安装,试试重装一下
brew reinstall tesseract
二前提:python环境,系统:win系统
1安装pytesseract
清华镜像:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/pytesseract/
2,安装ocr
tesseract-ocr-w64-setup-v4.0.0-beta.4.20180912
3.添加环境变量
path: C:\Program Files (x86)\Tesseract-OCR
python+tesseract 实现OCR-图像文字识别相关推荐
- Prizmo Pro for Mac(OCR图像文字识别工具)
Prizmo Pro mac版可以自动扫描相机中的图片,可根据用户选择的文档类型进行特殊处理,支持常用的扫描仪.数码相机.iPhone.iPad 等,也支持自动截图桌面部分区域然后识别出文字,非常的有 ...
- 基于Python的离线OCR图片文字识别(一)——命令行方式对图像文件处理生成同名txt文件
应用背景:在正式开始文章之前,先阐述一下项目的应用背景--项目需要对已有的电子档案数据进行"大数据"处理和呈现,但是由于之前进行档案电子化时都是以扫描文件的图像格式存储在硬盘上(准 ...
- 用Python写了一个图像文字识别OCR工具
大家好,我是辰哥~ 点击下方名片关注和星标『Python研究者』!
- 基于Python的离线OCR图片文字识别(三)——支持PDF文件
前面第一个版本实现了基本的ocr功能,可以对某图像文件进行处理,将ocr结果以同名txt文件的方式保存在图像文件同路径下: 然后在第二个版本中又实现了对文件夹参数的支持,也即可以对某个包含大量图像文件 ...
- 基于Python的离线OCR图片文字识别(四)——支持txt文件指定路径保存
虽然在前面在第二次升级时就已经通过json配置文件支持将ocr识别结果txt保存到指定的文件夹里了,但由于指定待识别文件夹时文件夹里面可能包含多个不同的子文件夹.不同的子文件夹里面可能包含同名的图像文 ...
- 基于Python的离线OCR图片文字识别(五)——终极版本
至此,终于迎来了离线ocr的终极大结局,命令行后面参数既支持图像文件.图像文件夹,还支持PDF图像类型的文件,既支持通过json文件进行参数配置,又支持帮助文档,easyOCR包既支持允许字符集(也即 ...
- 如何使用Python实现图像文字识别OCR
要使用Python实现图像文字识别OCR,可以使用以下步骤: 安装Tesseract OCR引擎 Tesseract是一种开源OCR引擎,可以处理多种语言和字体.要使用Python进行OCR,需要安装 ...
- 基于Python实现的图像文字识别OCR工具
引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作.生活中常常会用到,比如票据.漫画.扫描件.照片的文本提取. 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面 ...
- 基于Python实现的图像文字识别OCR工具,包含GUI界面附完整版代码可直接运行
引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作.生活中常常会用到,比如票据.漫画.扫描件.照片的文本提取. 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面 ...
最新文章
- Python创建目录文件夹
- 自己整理的shell笔记
- spring security源码分析心得
- boost::container_hash模块实现哈希图
- c mysql web开发实例教程_java web 开发入门实例
- 数据结构之栈对逆BoLand表达式的计算
- 怀里橘猫柴犬,掌上代码江湖——对话阿里云MVP郭旭东
- Django框架——HttpRequest对象
- linux环境下主从复制,Linux之CentOS上配置MariaDB主从复制
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- 世界国家中英文名称以及地区区号json格式
- 在我一生中最猥琐的时候遇见你(1)
- 如何使用分区工具实现无损分区大小调整?
- MTK 平台屏蔽 factory mode
- 中国计算机学会推荐国内期刊目录
- 专用神经网络处理器的芯片,cpu可以跑神经网络吗
- Arch Linux KDE Plasma + Windows 11 双系统安装指南
- 外置光驱DVD-RW错误解决
- Layui的layer.confirm弹框用法,很详细
- 模式识别(二)特征矢量与空间
热门文章
- 易媒助手安全性怎么样
- 【HIT-计算机系统】ICS-Lab5 LinkLab
- Vivado报错:[Runs 36-527] DCP does not exist,generate Output Products MIG ddr3 IP核后报错DCP问题解决
- 计算机学院 迎新宣传标语,有意思的大学迎新标语
- 在Unity中制作完整的技能系统(介绍篇)
- 10.11_魔兽世界
- 易语言可视化html编辑器,可视化网页设计编辑器源码附彗星真彩控件模块
- 重磅!百度取消新闻源机制 一个时代的结束
- 酷派发布高端智能手机,今年销售额冲击80亿
- uni-app 自定义导航栏