前言:没啥写的,直接看下文:
Tesseract OCR引擎下载
各个系统环境版本下载地址:
https://tesseract-ocr.github.io/tessdoc/Installation.html
Windows系统下载地址:
https://github.com/UB-Mannheim/tesseract/wiki
如果感兴趣看内部实现源码,可以参考Tesseract OCR引擎开源源码:
https://github.com/tesseract-ocr/tesseract
安装引擎,我用的Windows64位版本,安装期间,需要根据需要识别的内容,选择需要的语言包。默认只有英文。例如我选择简体中文。
安装完成,在安装路径下,可以看到traineddata,这个是训练数据集,前面代码语言类型,代码里面需要根据语言类型来指定需要识别的语言。
创建控制台程序,引用OpenCV的两个包:
Emgu.CV 和 Emgu.CV.runtime.windows
初始化OCR引擎,参数是训练数据集绝对路径,以及使用的训练数据语言,根据文件前缀,得知简体中文是chi_sim
代码语言:javascript复制Tesseract ocr = new Tesseract(@"D:Program FilesTesseract-OCRtessdata", "chi_sim", OcrEngineMode.Default);
截图了个图片拿来测试。测试图片:
获取本地图片进行识别:
代码语言:javascript复制 // 读取图像文件
using (Mat image = CvInvoke.Imread(@"D:test.png", ImreadModes.Color))
{
if (image != null)
{
// 设置要识别的图像
ocr.SetImage(image);
// 执行OCR识别
var res = ocr.Recognize();
if(res == 0)
{
Tesseract.Character[] characters = ocr.GetCharacters();
// 输出识别结果
foreach (var character in characters)
{
Console.Write($"{character.Text}");
}
}
}
}
运行程序,查看效果:
基本上都识别出来了,但是可能有小个别不是很准确,但是影响不大。