如何在 C# 中使用输入图像进行 OCR 处理

如何使用 IronOCR 在 C# 中读取图像

This article was translated from English: Does it need improvement?
Translated
View the article in English

OCR,即光学字符识别,是一种用于识别和提取图像中文本的技术。 这项技术对于将印刷文档数字化尤其有用,因为它允许您从扫描的页面、照片或其他图像文件中提取和处理文本内容。

IronOCR 支持多种图像格式,包括 jpg、png、gif、tiff 和 bmp。此外,还提供图像滤镜以增强识别能力。

快速入门:使用 IronOCR 读取图像文件

只需一行代码,即可使用 IronOCR 从图像中提取文本。 本示例展示了如何通过几个简单的步骤加载图像并使用IronTesseract上的Read方法读取其文本,从而实现快速 OCR 设置。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronOCR

    PM > Install-Package IronOcr

  2. 复制并运行这段代码。

    var result = new IronTesseract().Read(new OcrImageInput("Potter.png"));
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronOCR,免费试用!
    arrow pointer


阅读图像示例

首先实例化 IronTesseract 类以启用 OCR。 使用"using"语句创建OcrImageInput对象,并指定图像文件路径。 这样可以确保在不再需要资源时对其进行妥善处置。 IronOCR 支持多种格式的输入图像,包括 jpg、png、gif、tiff 和 bmp。最后,使用Read方法执行 OCR 识别。

[{i:( 从版本 2025.6 开始:

  • 现在加载 TIFF 图像的性能稳定提升。
  • 读取 TIFF 图像的性能提升取决于机器的 GPU。 部分用户可能会体验到速度提升两倍,而其他用户则可能发现性能与之前的版本类似。 @@--bracket-close--@@@
:path=/static-assets/ocr/content-code-examples/how-to/input-images-read.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("Potter.png");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("Potter.png")

' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel
读取PNG图像

请访问"如何读取多帧/页 GIF 和 TIFF"文章,了解更多关于读取 TIFF 和 GIF 图像的信息。

将图像导入为字节

除了普通的文件路径之外,OcrImageInput 类还接受字节、AnyBitmap、Stream 以及 Image 形式的图像信息。 AnyBitmap 是IronSoftware.Drawing.AnyBitmap的位图对象。

:path=/static-assets/ocr/content-code-examples/how-to/input-images-import-byte.cs
using IronOcr;
using System.IO;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Read byte from file
byte[] data = File.ReadAllBytes("Potter.tiff");

// Import image byte
using var imageInput = new OcrImageInput(data);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
Imports IronOcr
Imports System.IO

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Read byte from file
Private data() As Byte = File.ReadAllBytes("Potter.tiff")

' Import image byte
Private imageInput = New OcrImageInput(data)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
$vbLabelText   $csharpLabel

指定扫描区域

实例化 OcrImageInput 类时,也可以接受 CropRectangle 对象。 这样,您就可以指定要对图像文档的哪个区域进行 OCR 识别。 根据图像文档的不同,指定要扫描的区域可以显著提高性能。 在下面的代码示例中,您指定只读取章节编号和标题。

:path=/static-assets/ocr/content-code-examples/how-to/input-images-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Specify crop region
Rectangle scanRegion = new Rectangle(800, 200, 900, 400);

// Add image
using var imageInput = new OcrImageInput("Potter.tiff", ContentArea: scanRegion);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Output the result to console
Console.WriteLine(ocrResult.Text);
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Specify crop region
Private scanRegion As New Rectangle(800, 200, 900, 400)

' Add image
Private imageInput = New OcrImageInput("Potter.tiff", ContentArea:= scanRegion)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Output the result to console
Console.WriteLine(ocrResult.Text)
$vbLabelText   $csharpLabel

OCR结果

阅读特定区域

常见问题解答

如何在.NET C#中对图像执行OCR?

您可以通过使用IronOCR库在.NET C#中对图像执行OCR。首先从NuGet下载IronOCR,实例化IronTesseract类,并使用OcrImageInput类输入图像。然后,应用Read方法从图像中提取文本。

什么图像格式可以在.NET中用于OCR处理?

IronOCR支持多种图像格式进行OCR处理,包括jpg、png、gif、tiff和bmp。这允许与不同类型的图像文件灵活集成。

如何在C#中指定图像的特定区域以进行OCR?

在IronOCR中,您可以在实例化OcrImageInput类时使用CropRectangle定义要处理的图像特定区域。这可以通过将OCR操作集中在特定区域来提高性能。

是否可以在C#中从字节数组中读取图像以进行OCR?

是的,IronOCR允许您以字节数组、AnyBitmap、Stream或Image的形式输入图像。这种灵活性使您可以对不同格式的图像数据执行OCR。

如何在C#中确保OCR操作期间的高效内存管理?

为了在使用IronOCR进行OCR操作期间有效管理内存,在创建OcrImageInput对象时使用 'using' 语句。这可确保当资源不再需要时能被正确释放。

我可以在C#中处理多帧或多页图像以进行OCR吗?

可以,IronOCR支持读取多帧或多页图像,如GIF和TIFF。这种功能允许您对包含多个帧或页的复杂图像文件执行OCR。

如何通过使用图像过滤器增强OCR中的文本识别?

IronOCR提供的图像过滤器可用于增强文本识别功能。通过应用这些过滤器,您可以提高OCR过程在各种图像格式上的准确性和可靠性。

使用IronOCR在C#中读取图像有哪些好处?

IronOCR在C#中的图像读取提供了多个好处,包括支持多种图像格式、能够指定扫描区域以及能够以字节或流的形式输入图像。这些功能使.NET应用程序中的OCR处理更加高效灵活。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 5,167,857 | Version: 2025.11 刚刚发布