分享
 
 
 

[Tesseract] 简单数字识别

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

[Tesseract] 简单数字识别图像识别涉及的理论:傅里叶变换,图形形态学,滤波,矩阵变换等等.

Tesseract的出现为了解决在没有这些复杂的理论基础,快速识别图像的框架.

准备:

1.样本图像学习,预处理(平均每1个元素出现20次)

2.学习,初步识别

3.校正学习库

测试:

1.待识别图像,预处理

2.根据学习库 识别

例子1:图片反色

1 PRivate static void Reverse(string fileName,string outName) 2 { 3 using (var pic = Image.FromFile(fileName) as Bitmap) 4 { 5 for (int i = 0; i < pic.Width; i++) 6 { 7 for (int j = 0; j < pic.Height; j++) 8 { 9 var c = pic.GetPixel(i, j);10 c = Color.FromArgb(255 - c.R, 255 - c.G, 255 - c.B);11 pic.SetPixel(i, j, c);12 }13 }14 pic.Save(outName);15 }16 }

Reverse

例子2:取一个图片的指定区域

1 private Image Analyse(string fileName)//为方便,方法参数没有用Image 2 { 3 using (var map = Image.FromFile(fileName) as Bitmap) 4 { 5 if (map == null) return null; 6 Point p1; 7 Point p2; 8 var p = GetConfig(out p1, out p2); 9 var pic = new Bitmap(p.X, p.Y);10 var x = 0;11 var y = 0;12 for (int i = 0; i < map.Height; i++)13 {14 if (i >= p1.Y && i <= p2.Y)15 {16 for (int j = 0; j < map.Width; j++)17 {18 if (j >= p1.X && j <= p2.X)19 {20 pic.SetPixel(x, y, map.GetPixel(j, i));21 x++;22 }23 }24 x = 0;25 y++;26 }27 }28 return pic;29 }30 }31 32 private Point GetConfig(out Point p1, out Point p2)33 {34 var p1Str = ConfigurationManager.AppSettings["p1"].Split(',');35 var p2Str = ConfigurationManager.AppSettings["p2"].Split(',');36 p1 = new Point() { X = int.Parse(p1Str[0]), Y = int.Parse(p1Str[1]) };37 p2 = new Point() { X = int.Parse(p2Str[0]), Y = int.Parse(p2Str[1]) };38 return new Point() { X = p2.X - p1.X + 2, Y = p2.Y - p1.Y + 2 };39 }40 41 42 class Point43 {44 /// <summary>45 /// 点的X坐标,或者宽度46 /// </summary>47 public int X { get; set; }48 /// <summary>49 /// 点的Y坐标,或者高度50 /// </summary>51 public int Y { get; set; }52 }

Image Analyse(string fileName)

识别步骤:

1.将图片转成tif格式,通过jTessBoxEditor程序把所有tif图片打包成1个tif图片.

2.安装tesseract-ocr-setup-3.01-1.exe(用安装包版不需要配环境变量).

3.dos命令:输入tesseract.exe {0}.tif {0} batch.nochop makebox生成box文件({0}为文件名)

4.dos命令:输入tesseract.exe {0}.tif {0}nobatch box.train生成tr文件

5.dos命令:输入unicharset_extractor.exe tj.box生成unicharset文件

6.同一目录下新建一个文件font_properties无扩展名.写入{0}1 0 0 1 0

7.dos命令:输入cntraining.exe {0}.tr

8.dos命令:输入mftraining.exe -F font_properties -U unicharset {0}.tr

9.4个文件名加前缀:{0}. (1.有.2.4个:unicharset inttemp normproto pfftable)

10:dos命令:combine_tessdata {0}.(合并所有文件,生成学习库,{0}.traineddata)

代码步骤:

1.解压tesseractdotnet_v301_r590.zip,添加tesseract.dll引用

2.

var tp= new TesseractProcessor();

tp.SetPageSegMode(ePageSegMode.PSM_SINGLE_LINE);

tp.Init("{0}","{1}", (int)eOcrEngineMode.OEM_DEFAULT);//{0}为Path名,如c:\test\,{1}为学习库文件名,不需要扩展名.

var result = tp.Recognize(pic);

3.生成目标平台x86.

工具下载:点击下载

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有