跳至页脚内容

从.NET OCR示例开始

C# + VB.NET: 自动 OCR 自动 OCR
using IronOcr;

string imageText = new IronTesseract().Read(@"images\image.png").Text;
NuGet Download
Install-Package IronOcr

IronOCR的独特之处在于它能够自动检测和读取不完全扫描图像和 PDF 文档中的文本。 IronTesseract类提供了最简单的 API。

尝试其他代码示例,以获得对 C# OCR 操作的更精细控制。

IronOCR在任何平台上提供了已知的最先进的Tesseract构建,速度更快,精度更高,并提供了本地 DLL 和 API。

支持适用于 .NET Framework、Standard、Core、Xamarin 和 Mono 的 Tesseract 3、Tesseract 4 和 Tesseract 5。

Explore the IronTesseract C# OCR How-To Guide

C# + VB.NET: 国际语言 国际语言
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.Arabic;

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(@"images\arabic.gif");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}

// Example with a Custom Trained Font Being used:

var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadPdf(@"images\mixed-lang.pdf");
    var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}
NuGet Download
Install-Package IronOcr

IronOCR 语言支持

IronOCR 支持 125 种国际语言。 除了默认安装的英语之外,还可以通过 NuGet 将其他语言包添加到您的 .NET 项目中,或者从我们的语言页面下载其他语言包。

大多数语言都提供快速、标准(推荐)和最佳质量三种版本。 最佳质量选项可能提供更准确的结果,但处理时间也会更慢。

使用 IronOCR 探索多种语言的 OCR 技术。

C# + VB.NET: 结果对象 结果对象
using IronOcr;
using IronSoftware.Drawing;

// We can delve deep into OCR results as an object model of
// Pages, Barcodes, Paragraphs, Lines, Words and Characters
// This allows us to explore, export and draw OCR content using other APIs/
var ocrTesseract = new IronTesseract();

ocrTesseract.Configuration.ReadBarCodes = true;

using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);

OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
    // Page object
    int PageNumber = page.PageNumber;
    string PageText = page.Text;
    int PageWordCount = page.WordCount;
    // null if we dont set Ocr.Configuration.ReadBarCodes = true;
    OcrResult.Barcode[] Barcodes = page.Barcodes;
    AnyBitmap PageImage = page.ToBitmap(ocrInput);
    double PageWidth = page.Width;
    double PageHeight = page.Height;
    double PageRotation = page.Rotation; // angular correction in degrees from OcrInput.Deskew()

    foreach (var paragraph in page.Paragraphs)
    {
        // Pages -> Paragraphs
        int ParagraphNumber = paragraph.ParagraphNumber;
        string ParagraphText = paragraph.Text;
        AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
        int ParagraphX_location = paragraph.X;
        int ParagraphY_location = paragraph.Y;
        int ParagraphWidth = paragraph.Width;
        int ParagraphHeight = paragraph.Height;
        double ParagraphOcrAccuracy = paragraph.Confidence;
        OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
        foreach (var line in paragraph.Lines)
        {
            // Pages -> Paragraphs -> Lines
            int LineNumber = line.LineNumber;
            string LineText = line.Text;
            AnyBitmap LineImage = line.ToBitmap(ocrInput);
            int LineX_location = line.X;
            int LineY_location = line.Y;
            int LineWidth = line.Width;
            int LineHeight = line.Height;
            double LineOcrAccuracy = line.Confidence;
            double LineSkew = line.BaselineAngle;
            double LineOffset = line.BaselineOffset;
            foreach (var word in line.Words)
            {
                // Pages -> Paragraphs -> Lines -> Words
                int WordNumber = word.WordNumber;
                string WordText = word.Text;
                AnyBitmap WordImage = word.ToBitmap(ocrInput);
                int WordX_location = word.X;
                int WordY_location = word.Y;
                int WordWidth = word.Width;
                int WordHeight = word.Height;
                double WordOcrAccuracy = word.Confidence;
                foreach (var character in word.Characters)
                {
                    // Pages -> Paragraphs -> Lines -> Words -> Characters
                    int CharacterNumber = character.CharacterNumber;
                    string CharacterText = character.Text;
                    AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
                    int CharacterX_location = character.X;
                    int CharacterY_location = character.Y;
                    int CharacterWidth = character.Width;
                    int CharacterHeight = character.Height;
                    double CharacterOcrAccuracy = character.Confidence;
                    // Output alternative symbols choices and their probability.
                    // Very useful for spellchecking
                    OcrResult.Choice[] Choices = character.Choices;
                }
            }
        }
    }
}
NuGet Download
Install-Package IronOcr

IronOCR 使用 Tesseract 5 扫描每一页,并返回一个高级结果对象。 这包含位置数据、图像、文本、统计置信度、备选符号、字体名称、字号装饰、字重以及每个元素的位置

  • <代码>页面</代码
  • <代码>段落</代码
  • 文本行
  • <代码>Word</代码
  • 个性
  • <代码>Barcode</代码

探索如何使用 IronOCR 读取 OCR 结果

Human Support related to 在.NET Core中的OCR

直接来自我们开发团队的人工支持

无论是产品、集成还是授权问题,Iron 产品开发团队随时准备回答您所有问题。立即联系并与 Iron 开始对话,以便在您的项目中充分利用我们的库。

提问
Image To Text related to 在.NET Core中的OCR

光学字符识别(OCR)读取引擎 —— 在OCR .NET SDK中实现图像到文本

IronOCR(光学字符识别)库使开发人员在将图像转换为文本时能够快速且高效地获得结果。IronOCR适用于.NET, VB .NET和C#。我们的高端.NET应用程序适用于.NET框架,专为您——开发者——设计,以支持您的项目实现最佳性能。

OCR接收和识别文本文件、条形码、QR内容等。但是,IronOCR还提供了许多方法,允许您将OCR读取和图像中的文本添加到web、windows桌面或控制台.NET项目中,可以支持几乎无限的图像格式和文件,例如JPG、PNG、GIF、TIFF、BMP、JPEG或PDF。

技术揭秘——IronOCR提供完美的结果

尽管从图像输出中识别纯文本、字符、行和段落的结果可能并不显得直接,但您会发现,IronOCR的结果比您最初想象的更为简单。IronOCR扫描图像以校准,采用其噪声去除和过滤器来检查质量和分辨率。它检查其属性,优化OCR引擎,并使用训练过的人工智能网络来识别文本(从图像中),同样准确如人。

即便对于计算机来说,OCR也不是一个简单的过程。然而,IronOCR使得创建可搜索文档的整个过程更加快速和直接,且具有100%的准确性且仅需要最少的代码行数。

适用于 .NET, VB.NET, C#

阅读教程
Support For Languages related to 在.NET Core中的OCR

支持多种国际语言

软件不受地域界限的限制——企业需跨国运作并依赖多种语言来实现其结果。同样的,仅在单一语言支持文档识别的光学字符识别(OCR)工具在任何方面都是失败的!

多语言OCR支持对您意味着什么?

通过提供多个OCR功能的多语言OCR库,您可以从扫描的PDF或扫描的图像中创建可搜索的PDF文档,支持多种语言(从法语到中文)。具有动态、可搜索词的PDF文档,可以使您、您的客户或组织在没有限制的情况下使用和重用。

关注您、贵企业及您的OCR需求,无论内置还是按需,IronOCR库提供广泛的语言支持。您下一步的.NET项目可以不再担心语言兼容性问题!

无论是阿拉伯语、西班牙语、法语、德语、希伯来语、意大利语、日语、简体中文、繁体中文(普通话)、丹麦语、英语、芬兰语、葡萄牙语、俄语、或瑞典语,只需您命名的语言,我们就能为您提供!您可以下载您偏好的语言包,或者联系我们的24/7支持获取更多语言。

第一步是使用我们的Windows Visual Studio NuGet包安装程序。

下载语言包
Advanced Image related to 在.NET Core中的OCR

图像处理以准确读取不完美扫描

IronOCR 与其竞争对手有何不同?除了让您轻松添加 OCR 功能、提取文本和扫描旋转图像外,它还具有从不完美扫描中执行 OCR 的能力!相比之下,许多市场上现成的产品往往是僵化和不准确的,注定在现实世界的个人和企业应用中失败,因为大多数产品只支持机器打印、高分辨率和完美调整的文本。

IronOCR 扩展了 Google Tesseract 的功能,提供强大的 IronTesseract DLL — 一种本地 C# OCR 库,具有比免费的 Tesseract 库更高的稳定性和准确性。

放心使用 - IronOCR 支持您!

只要手中有最好的工具,即使您手中有不完美的扫描图像或存储在您的存储文件夹中的图像 - IronOCR 的图像处理库转换可以清除噪声、旋转、减少扭曲和失真的对齐,并提高分辨率和对比度。高级光学字符识别(OCR)设置为您——编码者——提供生成最佳可搜索结果所需的工具和代码,反复如此。

搜索您需要的单词,绝不要对 99.8%-100% 的准确结果和对 PDF 文件、多帧 TIFF 文件、JPEG 和 JPEG2000、GIF、PNG、BMP、WBMP、System.Drawing.Image、System.Drawing.Bitmap、System.IO.Streams 的图像、二进制图像数据(byte[])及其他一切感到失望!

Tesseract的替代品
Fast And Polite Behavior related to 在.NET Core中的OCR

快速和准确——从扫描的PDF到旋转扫描图像

与其他.NET框架内的应用程序不同,您会发现IronOCR的软件包管理器控制台和识别文本控制台中的高级光学字符识别赋予您的用户读取多种字体(从Times New Roman到任何花哨或难以理解的字体)、粗细和样式的能力, 从完整图像或扫描图像中准确读取文本。我们能够选择图像的某些区域以提高速度和准确性。从几行到几段的多线程加快了OCR引擎的速度,并允许在多核机器上读取多个文件。

始终如一的性能支持

我们对于速度和准确性的声称不仅限于字符识别的过程。事实上,性能改进从安装开始,因为IronOCR的.NET OCR引擎易于安装,是一个完整且文档详尽的.NET软件库。在Visual Studio中有一个单独的NuGet包管理器安装,并与MVC、WebApp、桌面、控制台和服务器应用程序兼容。

您可以在没有任何外部网络服务、持续费用或将机密文件发送到互联网上的情况下实现99.8-100% 的OCR准确性。在没有繁琐的C++编码的情况下,IronOCR是需要完整PDF OCR支持的多个字符、单词、行、段落、文本和文件时的明确选择。

我们为寻求提升其编码的开发人员提供最佳选择,因为IronOCR开箱即用,无需性能调优或大量更改输入图像。最新的IronOCR版本工作迅速——速度高达之前版本的十倍,并且错误率减少超过250%。我们升级我们自己的版本,以支持您的目标,提供完美的OCR平台!

查看完整功能列表
Output Content related to 在.NET Core中的OCR

将OCR结果数据直接导出至您的应用程序

即便在使用移动设备时,我们完美的.NET OCR库使开发人员能够“无忧编码”,因为IronOCR支持将内容导出为一组简单的直接文本、机器编码的文本、条形码数据或结构化对象模型数据。您可以分割内容段落、行、单词、字符和图像字符串结果,用于.NET应用程序中。

舒适地导出到目标应用程序和格式——XHTML、可搜索文档、HOCR和HTML。

从源代码到最终结果——如果您无法将其导出到应用程序,结果数据将毫无用处。IronOCR了解这一点,允许您将OCR结果导出为XHTML格式,以便能够在更广泛的应用程序范围内工作,并与复杂网站集成,更不提更快的加载时间!

然而,支持并不止于此。将OCR结果导出为可搜索的PDF文档使您、您的客户和组织能够在需要时轻松存储和检索PDF文档!这尤其有益于您有一个30页的合同,可以在数据库中通过几个关键字进行搜索,也使您的公司呈现出符合标准的形象,因为可搜索的PDF文档在视觉上有障碍的人群中被证明是有益的。

除上述之外,您可以将结果导出到表示您的OCR输出、布局信息和样式信息的OCR格式,并将相关信息嵌入标准HTML中。

了解更多
支持:
  • .NET Framework 4.0 及以上版本支持 C#、VB、F#
  • Microsoft Visual Studio。 .NET 开发 IDE 图标
  • NuGet 安装程序支持 Visual Studio
  • JetBrains ReSharper C# 语言助手兼容
  • Microsoft Azure C# .NET 托管平台兼容

许可和定价

免费社区开发许可证。商业许可证起价$749。

项目 C# + VB.NET 库授权

项目

开发者C# + VB.NET库许可

开发者

组织C# + VB.NET库许可

组织

代理商C# + VB.NET库许可

代理商

SaaS C# + VB.NET库许可

SaaS

OEM C# + VB.NET库许可

OEM

查看完整的许可证选项  

来自 .NET 社区的 OCR 教程

.NET Tesseract OCR | IronOCR

C# Tesseract OCR

Jim Baker 是 Iron 为 OCR 产品进行开发的开发工程师

IronOCR 与 Tesseract 在 .NET 中的比较

Jim 一直是 IronOCR 开发的领导人物。 Jim 设计和构建 OCR 的图像处理算法和读取方法。

查看比较
将文本转换为图像在 .NET 中 | 教程

C# OCR ASP.NET

Gemma Beckford - Microsoft 解决方案工程师

用于 .NET 的图像文本提取

了解 Gemma 的团队如何使用 IronOCR 从图像中读取文本用于他们的存档软件。 Gemma 分享了她自己的代码示例。

图像转文本 .NET 教程
成千上万的开发者使用 IronOcr 来…

会计和金融系统

  • # 收据
  • # 报告
  • # 发票打印
向ASP.NET会计和金融系统添加PDF支持

业务数字化

  • # 文档
  • # 订购和标签
  • # 纸质替代
C#业务数字化用例

企业内容管理

  • # 内容制作
  • # 文档管理
  • # 内容分发
.NET CMS PDF支持

数据和报告应用程序

  • # 性能跟踪
  • # 趋势映射
  • # 报告
C# PDF报告
Iron Software企业.NET组件开发者

数千家企业、政府、中小企业和开发者信赖Iron软件产品。

Iron团队在.NET软件组件市场拥有超过10年的经验。

GE
Nexudus
ANZ
Equinor
Medcode
Marval
Foley
Vireq