在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在光学字符识别方面,开发人员经常需要在 Tesseract OCR 工具和 Microsoft OCR 引擎之间做出选择。 (光学字符识别) 和 C#。尽管两者的功能、效率、集成度和易用性各不相同,但都是从照片或扫描文档中提取文本的有效 OCR 工具。在 C# 开发框架内,我们将在本文中深入研究不同 OCR 工具(如 Tesseract 与 Microsoft OCR)的优点、缺点和适用性。
光学字符识别简称 OCR。这项技术可以将各种文件格式(如扫描图像文件、PDF 文件或数码相机照片)转化为可编辑和可搜索的数据。为了将图像的形式和图案转化为机器可读的文本,谷歌云视觉或谷歌视觉 OCR 等不同的 OCR 工具会对图像进行分析。通过使用这种技术,用户可以从照片中获取文本,并像处理数字文档一样编辑、搜索和更改内容。
魔方 OCR 是一个开放源码的光学字符识别 (光学字符识别) 引擎,有时简称为 Tesseract。Tesseract 最初由惠普实验室于 20 世纪 80 年代创建,现在由谷歌负责维护,是当今最流行的 OCR 引擎之一。
Tesseract 的主要功能是识别图片或处理扫描文档中的文本,并将其翻译成机器可读的文本。这样,用户就可以从各种来源(包括扫描文件分析、照片和 PDF 文件)中提取文本,从而使文本可编辑、可搜索和可操作。
选项:Tesseract 提供了大量的配置和自定义选项。针对特定的使用情况,用户可以调整多个参数,最大限度地提高 OCR 性能。此外,Tesseract 还可与 Java、C++、Python 和 C# 等多种平台和计算机语言相结合,使开发人员能够在广泛的应用中利用其功能。
第一步是在电脑上安装 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 Azure 提供基于云的光学字符识别技术。 (光学字符识别) 该解决方案可从文档和照片中提取文本,并具有增强的文本识别能力。Microsoft OCR 采用深度神经网络和机器学习技术,可从各种来源识别文本,准确性极高。
要在 C# 项目中使用 Microsoft OCR,必须将其与 Azure 认知服务(尤其是计算机视觉 API)相结合。您可以这样开始:
如果还没有 Azure 帐户,则必须创建一个。您可以创建一个免费的 Azure 帐户,并在试用期间访问多项服务。
必须在拥有 Azure 帐户时配置 Azure Cognitive Services 中的计算机视觉服务。
要配置服务,请根据提示选择订阅和价格层级。
可以利用 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 产品的更多信息。