如何使用 IronOCR 用 C# 阅读照片

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

IronOCR 的 ReadPhoto 方法可从 TIFF 和 GIF 等复杂照片格式中提取文本,提供带有文本区域和置信度分数的结构化结果,针对需要精确 OCR 处理的高质量扫描文档进行了优化。

在处理大量文件,特别是 TIFF 文件等扫描图像时,手动提取文本既耗时又容易出错。 光学字符识别 (OCR) 可自动完成这一过程,将图像中的文本转换为数字数据。 OCR 技术可处理扫描文件和照片等复杂图像,将其转化为可搜索、可编辑的文本。 这样可以加快文档处理速度,确保准确提取数据。

TIFF和GIF等格式上使用OCR可以实现大量数据的快速数字化,尽管它们在尺寸、颜色深度或压缩方面存在挑战。 借助 IronOCR 的 ReadPhoto 功能,开发人员可以从图像中提取文本,并执行高级操作,例如关键字搜索或将扫描数据转换为可搜索的 PDF。 这项技术对处理法律文件、档案或收据等对高效数据检索至关重要的行业大有裨益。

本教程演示如何使用 ReadPhoto 和操作 results 对象。 我们将讨论何时使用 ReadPhoto 而不是IronOCR的标准 Read 。 关于一般图像处理,请浏览 读取各种图像格式

要使用此功能,请安装 IronOcr.Extension.AdvancedScan软件包。

快速入门:使用 ReadPhoto 从复杂图像中提取文本

快速上手:使用 IronOCR 的 ReadPhoto 方法,在加载了图像帧的 OcrInput 上提取所有文本和区域。 它针对 TIFF、GIF 和类似照片格式进行了优化。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronOcr

    PM > Install-Package IronOcr
  2. 复制并运行这段代码。

    var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronOCR

    arrow pointer

如何使用 ReadPhoto 从 TIFF 图像中提取文本?

使用 IronOcr 可以直接读取 TIFF 和 GIF 等高质量照片格式。 首先,创建一个 OcrInput 变量,并使用 LoadImageFrame 加载图像。 然后使用 ReadPhoto 方法获取结果。 多页 TIFF OCR 教程提供了更多的多页文档示例。

请注意

  • TIFF 文件包含多个帧; 使用从零开始的索引时,需要使用 PageNumber 参数。
  • 该方法目前支持英语、中文、日语、韩语和拉丁字母。
  • 在 .NET Framework 上使用高级扫描需要 x64 架构。

)}]

我应该使用什么输入格式?

由于浏览器原生不支持 TIFF 格式,请在此处下载 TIFF 输入Input related to 我应该使用什么输入格式?。 下面显示的版本已转换为 WEBP。

Input

如何实现 ReadPhoto 方法?

本实现演示了从 TIFF 图像中提取文本和区域信息。 有关更多示例,请参阅我们的图片阅读代码示例

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

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);

// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);

// Index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;

// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;

//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;

var output = $"Text in First Region: {textinregion}\n"
             + $"Text Region:\n"
             + $"Starting X: {region.X}\n"
             + $"Starting Y: {region.Y}\n"
             + $"Region Width: {region.Width}\n"
             + $"Region Height: {region.Height}\n"
             + $"Result Confidence: {result.Confidence}\n\n"
             + $"Full Scnned Photo Text: {result.Text}";

Console.WriteLine(output);
$vbLabelText   $csharpLabel

OcrPhotoResult 提供哪些属性?

调试输出显示从处理后的图像中提取的 OCR 文本,包括电话号码、坐标和置信度评分

OcrPhotoResult 类提供了分析提取文本的关键属性。 有关使用 OCR 结果的详细信息,请参阅我们的数据输出和结果处理指南。

Text : 从 OCR 输入中提取的文本。
Confidence : 统计准确度置信度(0-1 等级,1 为最高)。 了解有关结果置信度得分的更多信息。
TextRegions : 包含位置数据的文本区域列表。 类似于定义 OCR 区域以进行有针对性的提取。


什么情况下应使用 ReadPhoto 而不是 Read?

ReadPhoto 与标准 Read 的主要区别在于 result 对象和支持的文件格式。 LoadImageFrame 明确接受 TIFF 和 GIF 格式,不接受 JPEG 等格式。 ReadPhoto 针对复杂的图像格式进行了优化,而标准的 Read 则适用于更简单的图像和一般的文本提取任务

为什么 ReadPhoto 仅支持 TIFF 和 GIF 格式?

TIFF 是一种无损格式,用于将多个页面和帧压缩到一个文件中。它用于高质量、多图像存储,如法律文件和医学图像。 由于比 JPEG 更为复杂,因此需要不同的文本提取方法。 专业化的处理方式可确保使用专业级图片格式获得最佳效果。

TIFF 图像使用不同的压缩方法,因此 IronOCR 采用专门的算法来破译文本。 ReadPhoto 中的先进算法能够处理 TIFF 压缩特性,确保从复杂的多层文档中准确提取。

下面是 TIFF 和 JPEG 格式的比较:

特征 TIFF(带标签的图像文件格式) JPG/JPEG(联合图像专家组)
压缩 无损或未压缩(保持音质) 有损压缩(以降低质量为代价减小文件大小)
文件大小 大号(由于质量高且可选无压缩) 体积更小,针对网页使用进行了优化,加载速度更快
图像质量 高品质(非常适合专业用途,保留所有细节) 较低(由于有损压缩,会牺牲一些音质)
颜色深度 支持高色彩深度(每通道最高可达 16 位或 32 位) 24 位色彩(1670 万种颜色)
用例 专业摄影、出版、扫描、存档 网络图片、社交媒体、日常照片
透明度 支持透明度和 Alpha 通道 **不**支持透明度
编辑 适合多次编辑(重新保存不会损失质量) 反复编辑和保存会导致质量下降。
兼容性 专业软件广泛支持 在所有平台和设备上均通用
动画片 不支持动画 不支持动画
元数据 存储大量元数据(EXIF、图层等) 存储 EXIF 元数据,但功能较为有限。

如何为我的应用程序选择 ReadPhoto 和 Read?

考虑每个生产用例,优化应用程序性能。 虽然 ReadPhoto 适用于复杂的 TIFF 图像,但其处理速度较慢。 JPEG 处理速度更快,但质量较低,可能导致 OCR 可信度较低。 必要时使用图像质量校正过滤器来改进结果。

confidence 属性位于 OcrPhotoResults 或任何 IOcrResult 接口类中,用于指示结果精度,方便开发人员进行测试和优化。对于精度要求最高的应用,使用高质量 TIFF 图像的 ReadPhoto 可提供最佳结果,尤其适用于对精度要求极高的档案或法律文件处理。

通过确保图像达到一定的质量阈值,在效率和准确性之间找到平衡。 对于混合文档类型,实施混合方法:对需要高精度的关键文档使用 ReadPhoto,对优先考虑速度的常规任务使用标准 Read

常见问题解答

ReadPhoto 方法支持哪些图像格式?

IronOCR 的 ReadPhoto 方法针对 TIFF 和 GIF 等复杂照片格式进行了优化。它专为从高质量扫描文档和照片中提取文本而设计,可提供包含文本区域和置信度分数的结构化结果。

如何从 TIFF 图像中提取文本?

要使用 IronOCR 从 TIFF 图像中提取文本,需要创建一个 OcrInput 变量,使用 LoadImageFrame 加载图像,然后应用 ReadPhoto 方法。过程很简单:var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));

使用 ReadPhoto 功能需要哪些附加软件包?

要在 IronOCR 中使用 ReadPhoto 功能,您需要从 NuGet 安装 IronOcr.Extension.AdvancedScan 软件包。该扩展提供了 ReadPhoto 方法所需的高级扫描功能。

何时应使用 ReadPhoto 而不是标准的 "读取 "方法?

在处理 TIFF 和 GIF 等复杂照片格式时,请使用 IronOCR 的 ReadPhoto 方法,尤其是需要进行精确 OCR 处理的高质量扫描文档。标准的 Read 方法更适合一般的图像处理任务。

ReadPhoto 能提供什么样的结果?

IronOCR 的 ReadPhoto 方法可提供结构化的 OCR 结果,其中包括提取的文本区域和置信度分数。您可以通过 OcrPhotoResult 属性访问这些结果,以查看和操作提取的数据。

ReadPhoto 可以处理多页文档吗?

是的,IronOCR 的 ReadPhoto 方法可以处理多页文档,尤其是通常包含多个帧的 TIFF 文件。LoadImageFrame 方法允许您指定处理多页文档中的哪一帧。

哪些行业可以从使用照片 OCR 技术中获益?

IronOCR 可使处理法律文件、档案、收据的行业以及任何处理大量扫描文件的企业受益,在这些行业中,高效的数据检索至关重要。ReadPhoto 方法可自动从这些复杂的图像格式中提取文本。

Curtis Chau
技术作家

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

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

准备开始了吗?
Nuget 下载 5,525,971 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronOcr
运行示例 观看您的图像变成可搜索文本。