OCR引擎
OCR(Optical Character Recognition)是指使用扫描仪或数码相机对文本资料进行扫描成图像文件,然后对图像文件进行分析处理,自动识别获取文字信息及版面信息的软件。
OCR引擎核心技术模块主要是由下面几个部分组成:
图像输入:读取不同图像格式文件的算法。
图像预处理:主要包括图像二进制化,噪声去除,倾斜较正等算法
版面分析:将文档图片分段落,分行的算法就叫版面分析算法
字符切割:字符切割算法主要处理因字符粘连、断笔造成字符难以简单切割的问题。
字符特征提取:对字符图像提取多维的特征用于后面的特征匹配模式识别算法。
字符识别:将当前字符提取的特征向量与特征模板库进行模板粗分类和模板细匹配,识别出字符的算法。
版面恢复:识别原文档的排版,按原排版格式将识别结果输出到word或pdf等格式文档,叫做版面恢复算法。
后处理校正: 根据特定的语言上下文的关系,对识别结果进行较正的算法。

其中,对于.Net来说三种比较主流和成熟的识别方式:

方式一、Asprise OCR实现。其中需要使用的3个dll是AspriseOCR.dll、DevIL.dll、ILU.dll。其数字识别率比较高,

示例代码:

[DllImport("AspriseOCR.dll")]
static extern string craboOCR(string file, int type);
private void GetVeryfyCode()
{
if(File.Exists(_imgPath))//ok
{
try
{
this.picbVeryfyCode.Image=System.Drawing.Bitmap.FromFile(_imgPath);
_veryfyCode=craboOCR(_imgPath,-); //将返回string,并以"\r\n"结尾!!
_veryfyCode=_veryfyCode.Substring(,);
this.txtVeryfyCode.Text=_veryfyCode;
}
catch(Exception e)
{
this.lblResult.Text+=e.Message;
}
}
}

方式二、Microsoft Office Document Imaging(Office 2007) 组件实现。

方式三、Tesseract引擎,其.NET版本地址为:http://www.pixel-technology.com/freeware/tessnet2/。其中在使用前要对该引擎进行安装,安装成功后可以对其Dos命令行进行封装,

调用命令形式如下:

 private void UseOCR(string v_strTesseractPath, string v_strSourceImgPath, string v_strOutputPath, string v_strLangPath)
{
using (Process process = new System.Diagnostics.Process())
{
process.StartInfo.FileName = v_strTesseractPath;
process.StartInfo.Arguments = v_strSourceImgPath + " " + v_strOutputPath + " -l " + v_strLangPath;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
process.WaitForExit();
}
}

OCR图片识别引擎的更多相关文章

  1. WindowsAPI调用和OCR图片识别

    傻了吧唧的装双系统.成功的干崩了原本的系统.现在重装VS.闲的没事胡扯几句. WindowsAPI在每一台Windows系统上开放标准API供开发人员调用.功能齐全.在这里只介绍三个部分. 1.利用A ...

  2. JAVA OCR图片识别

    今天闲来无聊,尝试了一下OCR识别,尝试了以下三种方案: 1.直接使用业界使用最广泛的Tesseract-OCR. Tesseract项目最初由惠普实验室支持,1996年被移植到Windows上,19 ...

  3. python实现百度OCR图片识别

    一.直接上代码 import base64 import requests class CodeDemo: def __init__(self,AK,SK,code_url,img_path): se ...

  4. Android开发学习之路-GSON使用心得(OCR图片识别)

    在安卓中解析JSON串可以使用的方法有很多,比如说用官方提供的JSONObject或者谷歌提供的开源库GSON,以及一些第三方开源库. 这里用的是GSON,为了测试方便,借助了一个百度的api,一个图 ...

  5. 利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字

    序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...

  6. 开源图片文字识别引擎——Tesseract OCR

    Tessseract为一款开源.免费的OCR引擎,能够支持中文十分难得.虽然其识别效果不是很理想,但是对于要求不高的中小型项目来说,已经足够用了. 文字识别可应用于许多领域,如阅读.翻译.文献资料的检 ...

  7. NET 2.0 OCR文字识别技术(Tesseract 引擎)[转]

    一.OCR简介  参见http://baike.baidu.com/view/17761.htm?fr=ala0_1  大家参照,我第一次也是这么了解的,呵呵.高手见笑 现在市面上好多OCR 引擎,不 ...

  8. Android实现OCR扫描识别数字图片之图片扫描识别

    [Android实例] Android实现OCR扫描识别数字图片之图片扫描识别 Android可以识别和扫描二维码,但是识别字符串呢? google提供了以下解决方案用的是原来HP的相关资料. 可以吧 ...

  9. 使用阿里云的图片识别成表格ocr(将图片表格转换成excel)

    为了简便财务总是要对照着别人发来的表格图片制作成自己的表格 图片识别 识别成表格 表格识别 ocr 使用阿里云api 购买(印刷文字识别-表格识别) https://market.aliyun.com ...

随机推荐

  1. JavaScript高级程序设计:第十一章

    一.选择符API SelectorsAPILevel 1的核心是两个方法:querySelector()和querySelectorAll(). 1. querySelector()方法 queryS ...

  2. mvc Area相关技术

    ASP.NET MVC中,是依靠某些文件夹以及类的固定命名规则去组织model实体层,views视图层和控制层的.如果是大规模的应用程序,经常会由不同功能的模块组成,而每个功能模块都由MVC中的三层所 ...

  3. Memcached缓存

    Memcached是"分布式"的内存对象缓存系统,那么不需要"分布"的.不需要共享的或者干脆规模小到只有一台服务器的应用,Memcached不会带来任何好处,相 ...

  4. ios图片剪切

    #import "ViewController.h" @interface ViewController ()@property (weak, nonatomic) IBOutle ...

  5. CentOS 7 BIND 搭建

    域名查找顺序 设置 /etc/host.conf 1. bind 安装 $ yum install bind bind-utilsnslookup (name server lookup) 在bind ...

  6. MSSQL存储过程接收另一个存储过程返回列表

    CREATE TABLE #tmp(m_Meter_ID varchar(20),low_Voltage int,num_Attack int,num_DER int,company_id int,a ...

  7. Encoding filter 编码过滤器

    1.首先编写过滤器,实际上就是继承了filter接口的一个类,实现其中的init  doChain  和destroy方法 package com.util; import java.io.IOExc ...

  8. asp之FSO大全

    <%Function ShowDriveInfo(strFolder)'显示磁盘信息'strRootFolder="/"'strDrivInfo=ShowDriveInfo( ...

  9. auto ash v1

    startdate=$1enddate=$2#reporttype=$3#reportformat='text'oraclehome=`echo $ORACLE_HOME` dbid=`sqlplus ...

  10. ant android打包--学习第一弹

    1. 准备工作 用eclipse创建一个android项目 安装ant和SDK,并且添加到系统环境变量 2.ant 使用 2.1 ant简单的帮助命令 ant -p 2.2 创建ant配置文件%AND ...