1.开始-运行-cmd,回车进入dos运行环境。
2.转入合并后的图并所在的路径:如 cd E:\propic
3.输入:tesseract.exe mainpic.tif (这是处理过的图片的名字) mainpic(这个是结果名,可以随机指定,最好直接指定与图片相同) bach.nochop makebox 回车,直至图片处理完成。
4.完成后,如果没有报错的情况下,可以看到在相 同的目录下生成有一个mainpic.box文件,此时,再次打开jTessBoxEditor.jar,通过文件打开-选择mainpic时,对会出现对于mainpic.tif的初步识别结果了。此时我们要做的工作,就是仔细地进行纠错的过程,以形成我们需要的样本库。
5.在确保以上样本库已保存的前提下,回到命令行,输入tesseract.exe mainpic.tif mainpic nobach box.train 回车确认。
6.命令行输入命令:unicharset_extractor.exe mainpic.box
7.保证上步命令成基础上,在当前操作目录下,手动新建一个文件,font_properties,注意,文件不能有扩展名。在文件中写入mainpic 1 0 0 1 0
8.命令行输入:cntraining.exe mainpic.tr
9.命令行输入:mftraining.exe -F font_properties -U unicharset mainpic.tr
10.此时,在当前文件夹中会产生几个文件,把unicharset,inttemp,normproto,pfftable这几个文件名加上前缀mainpic.
11.命令行输入:combine_tessdata mainpic. 其生成的mainpic.traineddata就是用来最终识别的样本库了。
12、引入api类库,进行.net 识别:tesseractdotnet_v301_r590.zip包中tesseract.dll文件解压出来,复制到当前项目中,引用—添加引用—选择该文件。
13、程序代码:
private void btncrckt_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();//建立文件对话框
if (ofd.ShowDialog() == DialogResult.OK)
{
string file = ofd.FileName;//获取文件名
using (Bitmap bit = (Bitmap)Image.FromFile(file))//通过文件名建立图像文件
{
using (Bitmap newbit = ProcessBitMap(bit))//通过预处理图片方式,得到新图像
{
TesseractProcessor tesprocess = new TesseractProcessor();//建立tesseractprocess对象
tesprocess.SetPageSegMode(ePageSegMode.PSM_SINGLE_LINE);//设置页模式
tesprocess.Init(@"E:\propic\last\", "mainpic", (int)eOcrEngineMode.OEM_DEFAULT);//设置识别库所在位置及训练库名称。
string result = tesprocess.Recognize(newbit);//指定图像文件进行识别
MessageBox.Show(result);
}
}
}
else
{
return;
}
}