65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET 中的 OCR 文档

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013年1月21日

CPOL

3分钟阅读

viewsIcon

52949

downloadIcon

4351

.NET 中的 OCR 文档。

概述

Dynamsoft 的 OCR SDKDynamic .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.dllDynamicOCRx64.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 图像采集和处理的其他演示/示例

Dynamic .NET TWAIN 演示

如果您有任何问题,可以联系我们的支持团队,邮箱地址是 nettwain@dynamsoft.com

© . All rights reserved.