[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 Point
43     {
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.

工具下载:点击下载

时间: 2024-10-16 14:02:49

[Tesseract]图像识别的相关文章

tesseract图像识别验证码:安装使用和避免坑

安装使用 https://blog.csdn.net/kk185800961/article/details/78747595 避免的坑 http://www.mamicode.com/info-detail-1893993.html 原文地址:https://www.cnblogs.com/andy9468/p/10907671.html

python 库安装方法及常用库

python库安装方法: 方法一:setpu.py 1.下载库压缩包,解压,记录下路径:*:/**/--/ 2.运行cmd,切换到*:/**/--/目录下 3.运行setup.py build 4.然后输入python,进入python模块,验证是否安装成功 方法二: 1.Win + R 打开运行窗口,输入cmd回车 2.找到pip安装路径--x:\Python xx\Scripts 3. 在命令行中切换至该目录cd x:\Python xx\Scripts 4.输入 pip install *

Tesseract——OCR图像识别 入门篇

今天来给大家分一下一下自己觉得还是挺不错的jar包下载网址,it-tidalwave-semantic-aux-1.0.13.jar,作为java开发者可能时时刻刻都在跟jar包打交道,即使这会用不上,大家也都记录一下,以便于以后能够用得着,这个网站叫59biye网也是我找了好久才找到看了一下上面有几十万个jar包可供大家下载,今天跟大家一起分享一下,希望对大家有所帮助.Tesseract--OCR图像识别 入门篇

使用ImageMagick和Tesseract进行简单数字图像识别

使用ImageMagick和Tesseract进行简单数字图像识别 由于直接使用 tesseract 进行识别,识别率很低, ImageMagick 安装.配置及使用: 平台:winXP 1. 安装ImageMagick(ImageMagick website:http://www.imagemagick.org/script/index.php)     下载并安装ImageMagick. http://www.imagemagick.org/script/binary-releases.ph

转:关于使用ImageMagick和Tesseract进行简单数字图像识别

据说Tesseract可是世界排名第三的OCR神器,2010年又更新了3.0版本.Tesseract原先是HP写的,现在Open Source了. 下面介绍怎么用Tesseract配合ImageMagick进行简单的数字图像识别. 首先Tesseract只能识别bmp,tif,所以先拿ImageMagick转换一下图像.注意得无压缩转换,否则Tesseract报错. convert -compress none ./pict.gif./in1.tif 然后将图片灰度化-colorspace Gr

tesseract 安装与训练(图像识别)

代码托管:https://github.com/tesseract-ocr/tesseract 环境:win10 安装版本:tesseract-ocr-setup-3.02.02.exe 基本使用命令: tesseract number.jpg result -l eng -psm 7 训练 下载使用JtessBoxEditor,该工具需要安装java vm运行.1.合并图像将需要识别的图片转换为tif格式,合并到一起.点击tools-->merage tiff-->选中所有图片保存为LAN.

Python2.7利用Tesseract进行中英文图像识别

背景环境:  win8.1  64位   python2.7.13  本以为会很简单,结果在配置环境这块上花了很多时间,踩了几个坑,最后自己看英文文档和log才解决问题.打开网站  https://pypi.python.org/pypi/pytesseract  https://github.com/tesseract-ocr/tesseract/wikihttps://github.com/tesseract-ocr/tesseract/wiki/Downloadshttp://www.py

C#识别验证码技术-Tesseract

相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌.识别图片格式的商品价格.识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码.如果要完成这些OCR的工作,需要你掌握图像处理.图像识别的知识,需要用到图形形态学.傅里叶变换.矩阵变换.贝叶斯决策等很多复杂的理论,这让绝大部分人都会望而却步. Tesseract这个开源项目的出现让我们普通人也可以涉足OCR的开发.Tesseract可以从图片中识别出文字内容,但不要以为Tesseract可以智能的识别出各种奇形怪状

Java OCR tesseract 图像智能字符识别技术

公司有需求啊,所以就得研究哈.近期公司须要读验证码.于是就研究起了图像识别.应该就是传说中的(OCR:光学字符识别OCR),以下把今天的收获整理一个给大家做个分享. 本人程序用的tesseract,官方地址:https://code.google.com/p/tesseract-ocr/.不为别的,谁让它支持我们的天朝的文字呢~哈 下载好程序后解压: 大概能够看到这样一个文件夹.别见怪楼主里面一堆測试文件. 然后就開始我们的測试之旅: tesseract的使用方法: 參数1:须要识别的文件 參数