当前位置: 首页 > news >正文

测试C#图像文本识别模块Tesseract的基本用法

  微信公众号“dotNET跨平台”的文章《c#实现图片文体提取》(参考文献3)介绍了C#图像文本识别模块Tesseract,后者是tesseract-ocr(参考文献2) 的C#封装版本,目前版本为5.2,关于Tesseract的详细介绍请见参考文献1和5,本文主要测试Tesseract模块的基本用法。
  之前测试过IronOCR和PaddleSharp,本文复用IronOCR的测试代码,在NuGet包管理器中安装Tesseract包,如下图所示:

在这里插入图片描述
  主要调用TesseractEngine类加载语言包、设置识别语言等,其构造函数原型如下所示。其中输入参数中的datapath指定语言包路径,安装NuGet包时不会安装语言包,需要单独下载,可以在参考文献2或者Tesseract官网中下载,language参数指定识别语言,语言名称对应语言包中文件名的开头部分(如chi_sim.traineddata对应的简体中文语言为chi_sim,eng.traineddata对应的英文为eng),engineMode参数对应的是识别引擎类型,其可选值如下所示。

public TesseractEngine(string datapath, string language, EngineMode engineMode)public enum EngineMode
{//// 摘要://     Only the legacy tesseract OCR engine is used.TesseractOnly,//// 摘要://     Only the new LSTM-based OCR engine is used.LstmOnly,//// 摘要://     Both the legacy and new LSTM based OCR engine is used.TesseractAndLstm,//// 摘要://     The default OCR engine is used (currently LSTM-ased OCR engine).Default
}

  调用TesseractEngine类中的Process函数识别图片内容,其函数原型如下,第一个参数指定待识别的图片(Pix类为Tesseract模块自带类,可以调用Pix.LoadFromFile函数生成实例对象),第二个参数为图片处理方式,取值见下面代码所示。Process函数返回Page类实例对象,从中可以获取识别结果。

public Page Process(Pix image, PageSegMode? pageSegMode = null)public enum PageSegMode
{//// 摘要://     Orientation and script detection (OSD) only.OsdOnly,//// 摘要://     Automatic page sementation with orientantion and script detection (OSD).AutoOsd,//// 摘要://     Automatic page segmentation, but no OSD, or OCR.AutoOnly,//// 摘要://     Fully automatic page segmentation, but no OSD.Auto,//// 摘要://     Assume a single column of text of variable sizes.SingleColumn,//// 摘要://     Assume a single uniform block of vertically aligned text.SingleBlockVertText,//// 摘要://     Assume a single uniform block of text.SingleBlock,//// 摘要://     Treat the image as a single text line.SingleLine,//// 摘要://     Treat the image as a single word.SingleWord,//// 摘要://     Treat the image as a single word in a circle.CircleWord,//// 摘要://     Treat the image as a single character.SingleChar,SparseText,//// 摘要://     Sparse text with orientation and script detection.SparseTextOsd,//// 摘要://     Treat the image as a single text line, bypassing hacks that are specific to Tesseract.RawLine,//// 摘要://     Number of enum entries.Count
}

  Page类中通过调用GetText函数获取图片中所有识别出的汇总的文本,其还支持如下函数获取文本内容或文本区域信息,后续会继续学习其用法。
在这里插入图片描述
  采用Tesseract模块的基本用法得到的图片文字识别效果如下所示。大部分可以识别出来,但是识别带车牌的图片不管是Tesseract,还是之前的IronOCR和PaddleSharp,效果都比较差,不清楚是设置的问题,还是语言包用得不对。
在这里插入图片描述
在这里插入图片描述

参考文献
[1]https://github.com/charlesw/tesseract/
[2]https://github.com/tesseract-ocr/tesseract/tree/main/src
[3]https://www.sohu.com/a/722507167_121124363
[4]https://github.com/tesseract-ocr/tessdata/
[5]https://zhuanlan.zhihu.com/p/578700314

http://www.lryc.cn/news/179031.html

相关文章:

  • 计组+系统02:30min导图复习 存储系统
  • 2023华为杯数学建模D题-域碳排放量以及经济、人口、能源消费量的现状分析(如何建立指标和指标体系1,碳排放影响因素详细建模过程)
  • Excel·VBA分列、字符串拆分
  • 机器学习算法基础--层次聚类法
  • linux系统中wifi移植方法
  • Machine Learning(study notes)
  • centos7通过docker搭建nginx+php环境
  • Node.js 学习笔记
  • RabbitMQ之发布确认高级
  • lv5 嵌入式开发-10 信号机制(下)
  • 【postgresql】 ERROR: multiple assignments to same column “XXX“
  • 一文读懂Llama 2(从原理到实战)
  • 完整指南:如何使用 Node.js 复制文件
  • ElementUI - 主页面--动态树右侧内容管理
  • 全国排名前三的直播公司无锋科技入驻天府蜂巢成都直播产业基地
  • 机器人中的数值优化|【五】BFGS算法非凸/非光滑处理
  • ESP32S3的MPU-6050组件移植教程
  • excel筛选后求和
  • pyspark 检测任务输出目录是否空,避免读取报错
  • 「网页开发|前端开发|Vue」10 vuex模块化:将数据划分成不同modules分别管理
  • 苹果CMS插件-苹果CMS全套插件免费
  • 域环境介绍
  • 地球同步静止轨道上的中国卫星
  • HAProxy代理TCP(使用HAProxy 为TiDB-Server 做负载均衡)
  • 全新自适应导航网模板 导航网系统源码 网址导航系统源码 网址目录网系统源码
  • 无人直播间
  • Linux 服务器防止 ssh 暴力密码登录破解之使用 fail2ban
  • 第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 D: 合并数列
  • ChatGPT必应联网功能正式上线
  • DETR中的问题汇总(代码)