在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在光学字符识别方面,开发人员经常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之间做出选择。(光学字符识别)在C#中。 尽管两者的功能、效率、集成度和易用性不同,但它们都是从照片或扫描文档中提取文本的有效 OCR 工具。 在 C# 开发的框架内,我们将在本文中彻底研究不同 OCR 工具(如 Tesseract 与 Microsoft OCR)的优点、缺点和适用性。
光学字符识别简称 OCR。 这是一种可以将各种文件格式(如扫描图像文件、PDF 文件或数码相机照片)转化为可编辑和可搜索数据的技术。 要将图像的形式和图案转换为机器可读文本,需要使用不同的 OCR 工具(如 Google Cloud Vision 或 Google Vision OCR)对图像进行分析。 通过使用这种技术,用户可以从照片中获取文本,并像使用数字文档一样编辑、搜索和更改内容。
魔方 OCR是一个开放源码的光学字符识别(光学字符识别)Tesseract 是 Tesseract 引擎的简称,有时也简称为 Tesseract。 Tesseract 最初由惠普实验室于 20 世纪 80 年代创建,目前由谷歌负责维护,是当今最流行的 OCR 引擎之一。
Tesseract 的主要功能是识别图片中的文本或处理扫描文档,并将其翻译为机器可读文本。 该工具允许用户从各种来源(包括扫描文件分析、照片和 PDF 文件)中提取文本,从而使文本可编辑、可搜索和可操作。
第一步是在电脑上安装 Tesseract OCR。您可以从 Tesseract 官方 GitHub 仓库获取 Tesseract 安装程序:https://github.com/tesseract-ocr/tesseract。
要在计算机上安装 Tesseract OCR,请按照操作系统的具体设置说明进行操作(Windows、macOS 或 Linux). 安装 Tesseract OCR 后,使用 Visual Studio 的 NuGet 包管理器将 Tesseract.NET 封装程序添加到 C# 项目中。
在 Visual Studio 中打开 C# 项目后,导航至工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 包。 通过在 NuGet 软件包管理器中搜索 "Tesseract",您应该可以找到名为 "Tesseract "或 "Tesseract.NET "的软件包。 要将软件包包含在您的项目中,请选择该软件包并单击 "安装"。
在安装 Tesseract.NET 包装之后,您必须在 C# 项目中设置 Tesseract,以指定 Tesseract OCR 可执行文件和语言数据文件的位置。 这里有一个例子:
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main(ByVal args() As String)
Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
Using img = Pix.LoadFromFile("image.png")
Using page = engine.Process(img)
Dim text = page.GetText()
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
为此,请在 TesseractEngine 构造函数选项中提供 Tesseract 安装目录的位置和您希望使用的一种或多种语言。 将 "eng "替换为您希望使用的一种或多种语言的语言代码(例如,"eng "表示英语)和 "path_to_tesseract_folder "与您的 Tesseract 安装目录的实际路径。
在 C# 项目中设置 Tesseract 后,您现在就可以利用其 OCR 功能从图片中提取文本。 TesseractEngine 实例加载图片后,可使用 Pix 类提取文本或在图像文件上运行 OCR,将 "image.png "替换为图像文件的路径。
微软认知服务包包括微软 OCR微软光学字符识别(Microsoft Optical Character Recognition),有时也被称为 "微软光学字符识别"。 Microsoft Azure 提供基于云的光学字符识别功能(光学字符识别)可从文档和照片中提取文本的解决方案,具有增强的文本识别能力。 Microsoft OCR 使用深度神经网络和机器学习技术来识别各种来源的文本,准确性极高。
多语言支持:Microsoft OCR 与其他 OCR 程序一样,可以进行多语言识别,允许用户从照片中提取各种语言和字符集的文本。 由于支持多种语言,它适用于具有各种语言需求的全球应用程序。
您必须将 Microsoft OCR 与 Azure 认知服务(尤其是计算机视觉 API)相结合,才能在 C# 项目中使用它。 您可以从这里开始:
如果您还没有 Azure 帐户,则必须创建一个。 您可以创建一个免费的 Azure 账户,并在试用期间访问多项服务。
必须在拥有 Azure 帐户时配置 Azure 认知服务中的计算机视觉服务。
可以使用 Microsoft Azure。 要在您的 C# 项目中与计算机视觉 API 通信,请使用 CognitiveServices.Vision.ComputerVision NuGet 软件包。
在 Visual Studio 中打开 C# 项目后,导航至工具 -> NuGet 包管理器,然后管理解决方案的 NuGet 包。
通过搜索 "Microsoft.Azure.CognitiveServices.Vision.ComputerVision "安装软件包。
安装 SDK 后,您可以使用计算机视觉 API 进行 OCR 识别。 下面是一个使用计算机视觉 API 对图像进行 OCR 识别的介绍性示例:
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
Dim endpoint = "YOUR_ENDPOINT"
Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
For Each region In result.Regions
For Each line In region.Lines
For Each word In line.Words
Console.WriteLine(word.Text)
Next word
Next line
Next region
End Function
End Class
要在图像文件上执行 OCR,请用图像文件的路径替换上面代码示例中的 "image.png"。这段代码将从图像中获取识别出的文本,并将其发送给计算机视觉 API。 在 Azure Cognitive Services 中配置计算机视觉服务后收到的端点 URL 和订阅密钥应替换为 "YOUR_ENDPOINT "和 "YOUR_SUBSCRIPTION_KEY"。
开发人员可以使用 IronOCR(一个 .NET OCR 库)将文本识别功能整合到他们的 C# 或 VB.NET 应用程序中。 它提供了一个用户友好的 API,用于从 PDF、图片和其他类型的媒体中提取文本。 Iron Software 是一家专门从事 .NET 组件和库的软件开发企业,负责创建和维护 IronOCR。
下面是一个基本的 C# 示例:
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("Demo.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
通过使用上述代码,我们可以以最高的 OCR 准确率从图像中提取数据。 此外,IronOCR 还能帮助将从手写文档中提取的文本转换为可编辑的文件格式,包括 Word。 我们还可以将扫描文件转化为可搜索的 PDF 文件。 通过 IronOCR,翻译结果可以存储为各种 OCR 输出格式。 要了解有关代码的更多信息,请参考这里.
来源图片:
结果
总之,Tesseract 和 Microsoft OCR 各自具有独特的优缺点,可为 C# 开发人员提供强大的 OCR 功能。 由于 Tesseract 具有定制性和灵活性,对于需要进行大量微调的应用程序来说,它是一个不错的选择。 不过,对于需要复杂文本识别功能的 C# 应用程序来说,Microsoft OCR 是最佳选择,因为它具有高准确性、可扩展性以及与 Azure 服务的无缝连接。 对于他们的 C# 项目,开发人员在决定使用 Tesseract 还是 Microsoft OCR 之前,应权衡个人需求、修改要求和资金限制。
最后,IronOCR 是一款卓越的 OCR 解决方案,具有出色的集成性、灵活性和准确性。 IronOCR 具有无与伦比的准确性、先进的算法以及识别包括手写文档在内的多种文档类型的能力,是目前市场上最优秀的 OCR 解决方案。 由于 IronOCR 可以在众多文档和常用计算机语言中顺利集成,因此它可以确保开发人员的可访问性,同时保持直观的界面。
您可以免费试用经济实惠的 IronOCR 开发版,如果购买 IronOCR 软件包,还将获得终身许可。 IronOCR 捆绑软件的起价为 $749,只需支付一个价格即可购买多个设备,非常超值。 要了解有关费用的更多信息,请访问 IronOCR网站. 点击此处链接了解有关 Iron Software 产品的更多信息。