java图片内容识别代码,c#使用Tesseract实现OCR图像识别

2018/10/30

C# .NET

C#教程 Tesseract 图像识别

c#教程

首先使用 NuGet 添加Tesseract的工具包

b481f8f4685847516ce0adc1f32238f3.png

接下来就是使用OCR识别的代码Bitmap ImageRecognitionBitmap=XXX;//需要识别的位图

string TessdataDirectoryName = “tessdata”;//模板文件目录 【经过多次实验貌似这个插件的模板文件存放的目录名称必须为 “tessdata” 否则识别就会报错】

string TraineddataName = System.IO.Path.GetFileNameWithoutExtension(TraineddataFile);//模板文件名称(不需要后缀名)using (var engine = new TesseractEngine(TessdataDirectoryName, TraineddataName, EngineMode.Default))

{

using (var page = engine.Process(ImageRecognitionBitmap, PageSegMode.Auto))

{

ResultText = page.GetText();//识别结果

}

engine.Dispose();

}

以下是演示OCR识别的一个基本流程演示(不涉及具体细节操作):

1.选择一张用于识别的图片文件

779b8913dd264d005f50648b226da3d8.png

2.选择需要识别区域生成Ttiff图像(就一般的图像保存即可, 内容识别度越高越好 比如黑白;用于生成训练box文件)

ad011108943c9cd682aad4ed6fa87ab0.png

!注 以下操作需要java的支持 需要安装java虚拟机)

///jdk-8u101-windows-x64tesseract-ocr-setup-3.05.01jTessBoxEditor-1.7.3简体中文chi_sim 然后配置环境变量(具体操作可以自行百度)

3.调用命令行执行生成box训练文件 要java的支持 需要安装java虚拟机)

dos命令行生成tiff图像:$“tesseract {TiffFile} {System.IO.Path.GetFileNameWithoutExtension(TiffFile)} batch.nochop makebox”

当初生成出现问题时 提示如下

963fc688787c7e9dc50eb29db47ac432.png

(这种情况下 可以试着将图像的大小修改一下 比如放大2倍 、3倍。。。)

生成成功时输出如下

b1eaf4af0841a3965d430e2c27acbb3c.png

4.启动 jTessBoxEditor 这个程序(可以自行百度下载)

打开刚刚生成的Tiff 图像   效果如图

8dd9fe07011c20f1a2f8a9a5fd1a6285.png

将左边的内容一一对应修改为正确的字符值 然后保存。

5.使用命令行执行生成识别模板文件(生成模板的最后一步)

命令行 如下:D:

cd 文件所在目录\tessdata

echo Run Tesseract for Training..

tesseract.exe TiffFile.tif TiffFile box.train

echo Compute the Character Set..

echo TiffFile 0 0 0 0 0 >font_properties

unicharset_extractor.exe TiffFile.box

mftraining -F font_properties -U unicharset -O TiffFile.unicharset TiffFile.tr

echo Clustering..

cntraining.exe TiffFile.tr

echo Rename Files..

rename normproto TiffFile.normproto

rename inttemp TiffFile.inttemp

rename pffmtable TiffFile.pffmtable

rename shapetable TiffFile.shapetable

echo Create Tessdata..

combine_tessdata.exe TiffFile.

pause

6.选取识别区域取得裁剪位图 然后调用OCR识别方法得到结果

这里演示程序使用的其他项目的 所以不用在意这些选区名称 只是为了获取精确定位识别的区域坐标 用于裁剪,想要识别整张图像也是可以的

4a909cf8f8afdec47e319cd48e1eb5b0.png

得到识别结果

861a37ce71eb62d1a5188624a04f6ec5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值