.NET 中的 OCR 文档
.NET 中的 OCR 文档。
概述
Dynamsoft 的 OCR SDK 是 Dynamic .NET TWAIN 的一个附加组件,它是一个针对 .NET 应用程序优化的图像采集 SDK。OCR SDK 允许您将扫描的图像转换为可搜索的 PDF/文本文件。 作为一个有用的功能,它实现起来并不容易。许多复杂的事情,例如准确性、图像格式等,都与获得更好的结果有关。 OCR 性能是影响整个过程效率的另一个重要因素。
Dynamsoft 的 OCR SDK 基于高度发达的开源引擎(Tesseract OCR 引擎)进行了优化,可帮助您摆脱这些负担。通过与 Dynamic .NET TWAIN 集成,您可以使用几行源代码创建一个强大的图像采集和处理解决方案。
主要特点
- 支持 40 多种语言,包括阿拉伯语和各种亚洲语言。
- 通过支持多线程处理实现高 OCR 性能。
- 通过字体识别实现准确识别
- 与图像采集 SDK – Dynamic .NET TWAIN 轻松集成。
以下各节将向您展示如何将 OCR 附加组件集成到您的 WinForm 应用程序中,并将扫描的图像转换为可搜索的 PDF/文本文件。
源代码
1. 将 Dynamic .NET TWAIN 嵌入到您的 WinForm 或 WPF 应用程序中。
我们将以 WinForm 为例。
假设您已经将 .NET 组件下载并安装到您的开发机器上(如果还没有,请从 Dynamsoft 的网站 下载 30 天免费试用版)。
打开您的 WinForm 应用程序或在 Visual Studio 中创建一个新的应用程序。从“工具”菜单中,选择“选择工具箱项”。在提示对话框中,单击“浏览”,然后选择 DynamicDotNetTWAIN.dll,该文件可以在 Dynamic .NET TWAIN 的安装文件夹中找到。单击“确定”关闭对话框。
将组件拖放到窗体上。
2. 从扫描仪、网络摄像头扫描图像或从本地文件夹获取图像。
Dynamic .NET TWAIN 支持从各种来源获取图像,包括扫描仪、网络摄像头和其他 TWAIN/WIA/UVC 兼容设备。在本文中,我将向您展示如何从本地磁盘加载现有图像。
SetViewMode
:定义控件的查看模式。
LoadImage
:加载现有的本地图像。支持的图像格式包括 BMP、PNG、JPEG、TIFF(单页和多页)和 PDF(单页和多页)。
this.dynamicDotNetTwain1.SetViewMode(1, 1); OpenFileDialog filedlg = new OpenFileDialog(); if (filedlg.ShowDialog() == DialogResult.OK) { foreach (string strfilename in filedlg.FileNames) { this.dynamicDotNetTwain1.LoadImage(strfilename); } }
3. 初始化 OCR 附加组件并选择语言包。
1) 选择语言包,并使用 OCRTessDataPath
属性定义该包的路径。
Dynamsoft 的 OCR SDK 支持 40 多种语言,包括英语、西班牙语、阿拉伯语等。下面的示例代码选择英语作为默认语言。其他语言包可以从 Dynamsoft 的网站下载:OCR SDK 语言包
string languageFolder = Application.StartupPath; this.dynamicDotNetTwain1.OCRTessDataPath = languageFolder; this.dynamicDotNetTwain1.OCRLanguage = "eng";
2) 设置 DynamicOCR.dll 或 DynamicOCRx64.dll 的路径以初始化 OCR 附加组件。
this.dynamicDotNetTwain1.OCRDllPath = "";
3) 选择 OCR 结果文件格式并保存。支持的文件格式包括 Text、PDF Plain Text 和 PDF Image over Text。 通过将格式设置为 PDF Image over Text,详细的图像/文本位置和格式(例如字体名称、字体大小、线条宽度等)将保持原样。
this.dynamicDotNetTwain1.OCRResultFormat = (Dynamsoft.DotNet.TWAIN.OCR.ResultFormat)this.ddlResultFormat.SelectedIndex; byte[] sbytes = this.dynamicDotNetTwain1.OCR(this.dynamicDotNetTwain1.CurrentSelectedImageIndicesInBuffer); if(sbytes != null) { SaveFileDialog filedlg = new SaveFileDialog(); if (this.ddlResultFormat.SelectedIndex != 0) { filedlg.Filter = "PDF File(*.pdf)| *.pdf"; } else { filedlg.Filter = "Text File(*.txt)| *.txt"; } if (filedlg.ShowDialog() == DialogResult.OK) { FileStream fs = File.OpenWrite(filedlg.FileName); fs.Write(sbytes, 0, sbytes.Length); fs.Close(); } } else { MessageBox.Show(this.dynamicDotNetTwain1.ErrorString); }
分布式
要将应用程序分发给最终用户,请将以下文件以及 EXE 文件一起复制到客户端计算机。
语言包
DynamicOCR.dll(用于 32 位 Windows 操作系统)和/或 DynamicOCRx64.dll(用于 64 位 Windows 操作系统)
DynamicDotNetTwain.dll
也支持 Xcopy 部署。
资源
OCR 的完整源代码可以从文章中下载。要测试和/或自定义代码,您可以从 Dynamsoft 的网站下载 Dynamic .NET TWAIN 的试用版。
下载 Dynamic .NET TWAIN 30 天免费试用版
可以在这里找到 .NET 图像采集和处理的其他演示/示例
如果您有任何问题,可以联系我们的支持团队,邮箱地址是 nettwain@dynamsoft.com。