R+OCR︱借助tesseract包实现图片文本提取功能
来源:互联网 发布:淘宝网天猫女装羽绒服 编辑:程序博客网 时间:2024/05/18 13:28
2016年11月,Jeroen Ooms在CRAN发布了tesseract包,实现了R语言对简单图片的文本提取、分析功能。
利用开源OCR引擎进行图片处理,目前可以识别超过100种语言,R语言可以借助tesseract调用OCR引擎进行相应操作。
从图像中提取文本时,需要提前安装训练数据(地址:https://github.com/tesseract-ocr/tessdata),系统默认为英语训练数据。在使用过程中,最好使用高对比度、低噪声、水平格式文本的图片。
转载于公众号R语言中文社区
一.核心函数介绍
ocr(image, engine = tesseract("eng"))tesseract(language = NULL, datapath = NULL, options = NULL,cache = TRUE)
参数:
image 图片文件路径,支持png、tiff、jpeg等格式
engine tesseract引擎,通过函数tesseract()来创建
language 训练数据的语言字符简写,默认为英语(eng)
datapath 训练数据的路径,模型为系统库
options tesseract引擎的相关参数,默认为NULL,可查看文档
cache 可以使用训练数据的缓存版本,默认为TRUE
3.tesseract_download(lang, datapath = NULL, progress = TRUE) #下载训练数据
4.tesseract_info() #查看训练数据路径、可使用数据的语言格式、当前版本
参数:
lang 训练数据的语言格式简写,比如英语就是eng,可查看tessdata repository.
datapath 训练数据下载路径地址
progress 下载中,是否要输出下载进程,默认为输出
二.案例演示
1.环境配置
install.packages('tesseract')library('tesseract')setwd('e:/tess') # 设定工作路径
2.利用tesseract包提取英文文本
tesseract_info() #查看当前可用语言格式
text_1<-ocr('e:/tess/eng_1.jpg', engine = tesseract("eng"))cat(text_1) #输出结果
3. 利用tesseract包提取中文文本
tesseract_info() #先查看是否有中文训练数据,如果没有,需要下载安装tesseract_download("chi_tra")tesseract_download("chi_sim") #chi_sim和chi_tra均是中文训练数据
text<-ocr('e:/tess/chi_1.jpg', engine = tesseract("chi_sim"))
4. 批量提取图片文本内容
temp<-list.files(pattern='*.jpg') #处理默认路径下jpg格式图片text<-ocr(temp, engine = tesseract("chi_tra"))cat(text)
注释:在使用图片批量处理方法时,需要图片格式一致!
三.文章小结
目前R软件通过tesseract包调用OCR引擎提取图片文本信息,对图片文本格式、噪声、对比度要求比较高,同时在多种语言(简体中文、英文等)混合时,提取准确度比较低,目前可以借助tesseract包实现简单图片的文本提取,同时结合jiebaR包、tm包进行文本分析与挖掘。
Github:https://github.com/tesseract-ocr
.
延伸一:实践过程中乱码较多
[1] "L】 = ′,\n` /′ /` _ …翦\n\"\n酐 敬\n〖 》 ' ` …\n`/\n鳙 Z … 蓁L `\n仗 ′ `) 犍 E\n璧荸「翼 〈v胴 ′ 量\n\" 麸 ` \n嵩支 ′′\n`=…荃′′熹立′\n_ 二鼻′婶 二: 冀三熹′ “ \"u\n~z(…毫屋喹墓莫重…了篡=`′′_-._′′ …` ′′_〉:、.” c, ) `z 『\n一.〈 脲 _ 『 .\n. _ 霆) 映忧愁郁渤瓜\nWe|bo.Com/u/6069986291\n\n"
这是一张图的输出,乱码这么多? 这是R问题,还是算法的问题?
从笔者在python那边实践来看,还是一样的不好,需要自己训练自己词库才能更好的识别,所以这也只是简单的应用了,中文还是需要自己训练一些文件才能进行识别。
- R+OCR︱借助tesseract包实现图片文本提取功能
- tesseract-ocr 实现图片识别功能
- tesseract-ocr 实现图片识别功能
- tesseract-ocr 实现图片识别功能
- tesseract-ocr 实现图片识别功能
- Tesseract-ocr实现图像文本识别
- tesseract-ocr图片识别
- Android集成Tesseract OCR实现图片文字识别
- Tesseract从图片中提取文本(CentOS+Java)
- Tesseract-ocr-图片文字识别
- 使用Tesseract OCR 提取復雜圖像中的文字
- 使用Tesseract OCR 提取復雜圖像中的文字
- 使用Tesseract OCR 提取美元序列號
- 基于Tesseract-OCR实现的JAVA WEB版OCR(图片转文字)
- 基于Tesseract-OCR实现的JAVA WEB版OCR(图片转文字)
- Tesseract-OCR的 实现训练
- java图片开源框架tesseract调用OCR实现图片文件识别代码下载
- 自写项目——实现tesseract-ocr功能_初步socket实现
- HDU 3003 PuPu(N非常大 语死早)
- Linux系统编程
- Mybatis工作机制源码分析—一次select请求处理流程
- MFC编程 文件对话框(转载 鸡啄米)
- webstorm 2016 激活破解
- R+OCR︱借助tesseract包实现图片文本提取功能
- 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详细教程
- 【Wc2002】奶牛浴场
- 【oschina】mysql web数据库的设计归范-1命名规范
- HDU 2844 FATE (二维完全背包)
- cassandra 3.x官方文档(6)---内部原理之存储引擎
- 图搜索之基于Python的迪杰斯特拉算法和弗洛伊德算法
- css-display属性辨析
- Bash One-Liners Explained 译文(三)(转载自团子的小窝)