博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Tesseract-ocr c#文字识别简单入门
阅读量:5893 次
发布时间:2019-06-19

本文共 2434 字,大约阅读时间需要 8 分钟。

一 .简单使用Tesseract文字识别

1.创建项目

2.引用Tesseract-ocr库

3.下载语言文件

 下载地址 

 目前下载中文做实验

    

 

4.代码部分

static void Main(string[] args)

{
var img = new Bitmap(@"F:\1557288016(1).png");    //需要识别的图片

//F:\test\ConsoleApp1\TesseractDemo\tessdata 为语言包存放路径

var ocr = new TesseractEngine(@"F:\test\ConsoleApp1\TesseractDemo\tessdata", "chi_sim", EngineMode.Default);    //使用chi_sim中文语言包做测试

var page = ocr.Process(img);

Console.Write(page.GetText());
Console.ReadKey();

}

5.运行结果

图片:

 

识别结果:

 

6.在原图没任何处理 字库没训练下的结果识别率还不是很理想.

 

二. 使用 jTessBoxEditor 进行简单数训练

1.安装 jTessBoxEditor

  下载jTessBoxEditor,地址https://sourceforge.net/projects/vietocr/files/jTessBoxEditor/

   

 

   解压后得到jTessBoxEditor

   

2.由于这是由Java开发的,所以要先安装JRE 这里不阐述

3.准备样本图片 两个不同字体的字母

    

    

4.将图片转换成tif\tiff格式 可百度在线图片转换tiff

5.合并tiff样本图片

 刚解压的目录找到一个【train.bat】打开 jTessBoxEditor >【Tools】>【Merge TIFF】 打开对话框选择两个tiff样本图片

点击打开弹出保存合并后图片路径选择 这里我们命名为num.font.exp0.tif

6.生成BOX文件

由于没有设置环境变量暂时把所有样本图片放到jTessBoxEditor\tesseract-ocr 方便cmd命令

cmd定位到样本图片位置执行 命令:tesseract num.font.exp0.tif num.font.exp0 batch.nochop makebox 出现下面说明成功

语法说明

【语法】:tesseract [lang].[fontname].exp[num].tif [lang].[fontname].exp[num] batch.nochop makebox

【语法】:lang为语言名称,fontname为字体名称,num为序号;在tesseract中,一定要注意格式

 

 7.定义字符配置文件

还在在jTessBoxEditor\tesseract-ocr文件夹内,新建一个文本文件,名为font_properties,删掉.txt,用记事本打开,写入内容为:

font 0 0 0 0 0

 语法说明

【语法】:<fontname> <italic> <bold> <fixed> <serif> <fraktur>

【语法】:fontname为字体名称,italic为斜体,bold为黑体字,
fixed为默认字体,serif为衬线字体,fraktur德文黑字体,
1和0代表有和无,精细区分时可使用

 

8.字符矫正

打开 jTessBoxEditor>【BOX Editor】> 【Open】,打开num.font.exp0.tif;矫正【Char】上的字符 每页没个样本字体蓝色框都要包含一个完整的字符一一对应

调整每页后保存

9.生成训练字包

还在在jTessBoxEditor\tesseract-ocr文件夹内,新建一个批处理文件do.bat (命名随意) 内容:

echo Run Tesseract for Training..

tesseract.exe num.font.exp0.tif num.font.exp0 nobatch box.train
echo Compute the Character Set..
unicharset_extractor.exe num.font.exp0.box
mftraining -F font_properties -U unicharset -O num.unicharset num.font.exp0.tr

echo Clustering..
cntraining.exe num.font.exp0.tr

echo Rename Files..

rename normproto num.normproto
rename inttemp num.inttemp
rename pffmtable num.pffmtable
rename shapetable num.shapetable

echo Create Tessdata..

combine_tessdata.exe num.

echo. & pause

 

然后cmd 执行do.bat文件

之后生成多个文件

红色框框便是我们要的训练库

 

最后测试结果 

var img = new Bitmap(@"F:\1557288016(1).png");

var ocr = new TesseractEngine(@"F:\test\ConsoleApp1\TesseractDemo\tessdata", "num", EngineMode.Default);
var page = ocr.Process(img);
Console.Write(page.GetText());

 

转载于:https://www.cnblogs.com/superone/p/10831849.html

你可能感兴趣的文章
地址与引用
查看>>
十大开源ERP点评 献给深水区的中小企业和CIO们
查看>>
Oracle --存储函数和存储过程
查看>>
Windows Server 2008 R2 SP1 关闭IE ESC (Internet Explorer 增强的安全配置)
查看>>
DT系统开发之-文件结构目录
查看>>
Android Looper简介
查看>>
【PHP】创蓝253云通信平台国际短信接口调用demo案例
查看>>
Confluence 6 重要缓存和监控
查看>>
Day 30 shell 编程
查看>>
静态路由和默认路由
查看>>
谈一谈Spring-Mybatis在多数据源配置上的坑
查看>>
2.1 shell语句
查看>>
【精益生产】车间现场管理的八大浪费
查看>>
springMVC国际化
查看>>
变频电源内部的元器件是有着什么样的发挥和作用
查看>>
hadoop+spark+scala环境--单实例版
查看>>
数组排序_冒泡排序、选择排序、快速排序
查看>>
mybatis写xml时注意事项
查看>>
关于阿里开发者招聘节 |这5道笔试真题 你会吗!???
查看>>
C#的异常处理机制
查看>>