彩票走势图

LEADTOOLS OCR文字识别教程:扫描文档并识别为可搜索的PDF文件

原创|使用教程|编辑:龚雪|2015-07-23 10:20:43.000|阅读 711 次

概述:LEADTOOLS OCR文字识别教程:扫描文档并识别为可搜索的PDF文件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

根据下面的步骤来创建和运行一个程序用来展示如何使用OCR扫描一个图片然后得到识别结果,最后将识别结果保存为可搜索的PDF文件。

1. 打开Visual Studio

2. 在菜单中选择文件->新建->项目

leadtools教程

3. 在新建项目对话框中,模板选择"Visual C#",然后选择Windows窗体应用程序

4. 在名称栏输入这个项目的名称:"OcrTutorial4",然后选择确定 ,当然如果需要的话可以重新指定一个目录来存放这个项目。

leadtools教程

5. 在“解决方案资源管理器”窗口,右键点击“引用”,然后在弹出菜单中选择“添加引用”。在弹出的引用管理器对话框中,选择“框架”然后选择“浏览(B)”按钮,定位到LEADTOOLS安装目录:

"<安装目录>\Bin\DotNet4\Win32" 然后选择如下几个DLL:

Leadtools.dll

Leadtools.Codecs.dll

Leadtools.Twain.dll

Leadtools.ImageProcessing.Core.dll

Leadtools.Forms.dll

Leadtools.Forms.DocumentWriters.dll

Leadtools.Forms.Ocr.dll

Leadtools.Forms.Ocr.Advantage.dll

Leadtools.Codecs.Bmp.dll

Leadtools.Codecs.Cmp.dll

Leadtools.Codecs.Tif.dll

Leadtools.Codecs.Fax.dll

注意:Leadtools.Codecs.*.dll这种引用是根据支持的图像格式命名的,例如BMP、TIF、FAX、JPG等,请根据您的需要添加不同的格式支持。

leadtools教程

6. 从工具箱中拖拽3个button到Form1中,button名称保持button1、2、3,然后修改button文字为如下内容:

button1:修改保存路径

button2:选择扫描设备

button3:扫描并识别

leadtools教程

7. 切换到Form1的代码视图,然后添加如下代码到文件的最前面,如果已经有了using代码的话请添加到已有代码后:

using Leadtools; 
using Leadtools.Twain;  
using Leadtools.ImageProcessing;  
using Leadtools.ImageProcessing.Core;  
using Leadtools.Forms;  
using Leadtools.Forms.DocumentWriters;  
using Leadtools.Forms.Ocr;

8. 在Form1的构造函数中添加如下代码:

// 请将这两个字段替换为你得到的License文件路径和Developer Key 
string licenseFilePath = @"D:\Program Files\LEADTOOLS 19\Common\License\LEADTOOLS.LIC";  
string developerKey = "***";

9. 在Form1类中添加如下的私有变量:

// OCR引擎 
private IOcrEngine _ocrEngine;  
// OCR文档  
private IOcrDocument _ocrDocument;  
// TWAIN  
private TwainSession _twainSession;  
// 保存PDF的路径  
private string _outputDirectory = @"D:\ScanImages";  
// 图像处理命令列表,我们使用这个功能来处理扫描的图片  
private List<RasterCommand> _imageProcessingCommands;  
private int _scanCount;

10. 重写Form1的 Onload事件,然后添加如下代码: 

protected override void OnLoad(EventArgs e) 
{  
	// 初始化OCR引擎  
	_ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false);  
	// 启动引擎  
	_ocrEngine.Startup(null, null, null, @"D:\Program Files\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime");  
	// 设置语言为中英  
	_ocrEngine.LanguageManager.EnableLanguages(new string[] { "zh-Hans", "en" });  
	// 初始化TWAIN  
	_twainSession = new TwainSession();  
	_twainSession.Startup(this.Handle, "My Company", "My Product", "My Version", "My Application", TwainStartupFlags.None);  

 
	// 订阅事件TwainSession.Acquire来获取扫描图像  
	_twainSession.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(_twainSession_AcquirePage);  

 
	// 初始化我们将要使用到的图像处理命令  
	// 您可以添加任意命令进行预处理, 这里我们只添加倾斜校正和去除噪点  
	_imageProcessingCommands = new List<RasterCommand>();  
	_imageProcessingCommands.Add(new DeskewCommand());  
	_imageProcessingCommands.Add(new DespeckleCommand());  

 
	base.OnLoad(e);  
}

11. 重写Form1的OnFormClosed方法,然后添加如下代码:

protected override void OnFormClosed(FormClosedEventArgs e) 
{  
	// 释放引擎  
	_ocrEngine.Dispose();  

 
	// 释放TWAIN  
	_twainSession.Shutdown();  

 
	base.OnFormClosed(e);  
}

12. 为button1(修改保存路径)添加如下代码: 

private void button1_Click(object sender, EventArgs e) 
{  
	// 变更保存路径  
	using (FolderBrowserDialog dlg = new FolderBrowserDialog())  
	{  
		dlg.SelectedPath = _outputDirectory;  
		dlg.ShowNewFolderButton = true;  
		if (dlg.ShowDialog(this) == DialogResult.OK)  
			_outputDirectory = System.IO.Path.GetFullPath(dlg.SelectedPath);  
	}  
}

13. 为button2(选择扫描设备)按钮添加如下代码:

private void button2_Click(object sender, EventArgs e) 
        {  
            // 选择您想要使用的扫描仪  
            _twainSession.SelectSource(null);  
        }

14. 为button3(扫描并识别)按钮添加如下代码:

private void button3_Click(object sender, EventArgs e) 
{  
	// 如果输出路径不存在的话创建一个  
	if (!System.IO.Directory.Exists(_outputDirectory))  
		System.IO.Directory.CreateDirectory(_outputDirectory);  

 
	// 建立PDF文件名称  
	string name = "Scanned" + _scanCount;  
	_scanCount++;  
	string pdfFileName = System.IO.Path.Combine(_outputDirectory, name + ".pdf");  

 
	// 创建一个基于文件的OCR文档以便于将扫描的文档添加进来  
	_ocrDocument = _ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.AutoDeleteFile);  

 
	// 扫描  
	_twainSession.Acquire(TwainUserInterfaceFlags.Show);  

 
	// 保存PDF  
	_ocrDocument.Save(pdfFileName, DocumentFormat.Pdf, null);  

 
	// 释放页面  
	_ocrDocument.Dispose();  

 
	// 显示结果  
	System.Diagnostics.Process.Start(pdfFileName);  
}

15. 添加扫描事件: 

private void _twainSession_AcquirePage(object sender, TwainAcquirePageEventArgs e) 
{  
	// 扫描进来的文档  
	RasterImage image = e.Image;  

 
	// 进行预处理  
	foreach (RasterCommand command in _imageProcessingCommands)  
	{  
		command.Run(image);  
	}  

 
	// 创建OCR页面  
	using (IOcrPage ocrPage = _ocrEngine.CreatePage(image, OcrImageSharingMode.AutoDispose))  
	{  
		// 识别  
		ocrPage.Recognize(null);  

 
		_ocrDocument.Pages.Add(ocrPage);  
	}  
}

16. 保存然后编译执行。

leadtools教程
leadtools教程
leadtools教程
leadtools教程
leadtools教程
 

标签:OCR

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
LEADTOOLS Professional Asian OCR Module

LEADTOOLS Asian OCR Module在应用程序中增加了一些光学字符识别(OCR)技术的方法,并包含了开发健壮的,高性能的和可扩展的图像识别方案所需要的技术。

LEADTOOLS OCR Module - LEAD Engine

开发健壮的,高性能的和可扩展的图像识别方案所需要的OCR 识别技术。

LEADTOOLS OCR Module - OmniPage Engine

LEADTOOLS OCR Module - OmniPage Engine增加了对添加光学字符识别(OCR)和智能字符识别(ICR)技术到应用程序的方法,并且包含开发稳健的,高性能的和可扩展的图像识别解决方案所需要的一切。

LEADTOOLS Professional Arabic OCR Module

LEADTOOLS Arabic OCR Module增加了对添加光学字符识别(OCR)技术到应用程序的方法,并且包含开发稳健的,高性能的和可扩展的图像识别解决方案所需要的一切。

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP