IronOCR 功能

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

IronOCR是一个.NET库,允许开发者从图像中扫描和读取文本或条形码。

兼容性

.NET 语言

  • C# (教程 API文档)
  • 从图像中扫描并读取文本或条形码(JPG、PNG、GIF、TIFF、BMP)在C#中。
  • VB.NET
  • 从图像中扫描并读取文本或条形码(JPG、PNG、GIF、TIFF、BMP)在 VB.NET 中。
  • F#

    • 扫描并从图像中读取文本或条形码(JPG、PNG、GIF、TIFF、BMP)在 F# 中。

平台

  • .NET 5、6、7 和 8 (教程)
  • IronOCR支持.NET 5、6、7和8。
  • .NET Core 2 和 3 (教程)

    • IronOCR 支持 .NET Core 2 和 3。

    • 当前版本支持在Linux、Unix和macOS客户端操作系统上的.NET Core,以及Mono。
  • 未来的版本将支持 MAUI 和 Xamarin。
  • .NET 标准 2+ (API文档)
  • IronOCR 与 .NET Standard 2 及以上版本兼容。
  • .NET Framework 4.6.2+ (代码示例 API文档)

    • 使用 .NET Framework 4.6.2 及以上版本扫描并读取图像中的文本或条形码。

应用程序类型

  • 控制台、网络和桌面 (教程 API文档)

    • 使用IronOCR为Web、桌面和控制台创建应用程序。

操作系统

集成开发环境

  • Microsoft Visual Studio (教程)
  • Jetbrains ReSharper 和 Rider

证书

  • Microsoft Authenticode

    DigiCert Trusted G4 代码签名 RSA4096 SHA384 2021 CA1

OCR引擎

底层OCR引擎

  • Tesseract 5 (教程 代码示例)
  • Tesseract是一个开源文本识别(光学字符识别)引擎,可根据Apache 2.0许可证使用。 C#.NET 上可用的最准确快速的库之一。 目前,Tesseract 5 是最稳定的版本。
  • 详细配置(代码示例)

    • IronTesseract.Configuration "对象提供了对 C# / .NET 中底层 Tesseract API 的访问,以便为高级用户配置设置。

    • 设置可以在执行OCR后改善输出效果。

    • 要提高OCR速度,请检查此代码示例用于快速 OCR 配置。

国际语言

教程

文本和条形码阅读

专业文件(操作方法

此方法使用机器学习来增强文本识别。

  • 文件
  • 针对阅读扫描文档或包含大量文本的纸质文档照片进行了优化。
  • 车牌
  • 专为从照片中读取车牌而优化。
  • 护照
  • 针对通过扫描机器可读区域从照片中读取和提取护照信息进行了优化。(MRZ)内容。
  • 照片
  • 优化用于阅读包含难以识别文字的图像。
  • 屏幕截图

    • 专为阅读包含难以识别文本的屏幕截图而优化。

并发性

  • 单线程与多线程 (操作方法 代码示例)
  • 异步支持 (操作方法 API文档)
  • 中止令牌 (代码示例)
  • 允许用户在程序或应用运行时,如果读取大型输入文件时出现卡顿,可以暂停当前线程一定的毫秒数。
  • 超时 (代码示例)

    • 提供可选的超时时间(以毫秒为单位),之后OCR读取将被取消。

计算机视觉

操作方法 API文档

  • 使用计算机视觉,基于我们先进的训练模型找到文本。 IronOCR 利用 OpenCV 使用计算机视觉来检测图像中存在文本的区域。 这对于包含大量噪音的图像、文本分布在许多不同位置的图像,以及文本扭曲的图像非常有用。 Use of computer vision in IronOCR will determine where text regions exists and then use Tesseract to attempt to read those regions.

OCR输入

代码示例

从多种格式读取

过滤器

  • 过滤向导 (代码示例 API文档)
  • 如果不知道应该对图像应用哪种滤镜,Filter Wizard 提供了适用于 OcrInput 的滤镜列表,使用暴力方法返回最大置信度的组合。
  • OCR图像过滤器 (操作方法 教程 代码示例)

    • 锐化 (API文档)

      * 锐化模糊的OCR文档。 将 Alpha 通道平展为白色。
    • 增强分辨率 (API文档)

      * 提高低质量图像的分辨率。
    • 玳瑁 (API文档)

      * 消除数码噪声。此过滤器仅应在预期有噪声的情况下使用。 将 Alpha 通道平展为白色。
    • 缩减 (API文档)

      * 高级形态学。 _Dilation_ 在图像中的对象边界处添加像素。 侵蚀的反义词
    • 蜕变 (API文档)
  • 高级形态学。 侵蚀在对象边界上移除像素。 缩小
  • 修正图像方向 (操作方法 教程 代码示例)

    • 旋转 (教程 API文档)

      * 将图像顺时针旋转若干度。要逆时针旋转,请使用负数。
    • 德斯克 (教程 API文档)

      * 将图像旋转至正位并保持正交。 这对于OCR非常有用,因为Tesseract对扫描倾斜的容忍度可以低至5度。
    • 刻度 (教程 API文档)
  • 按比例缩放 OcrInput 页面。
  • 修正图像颜色 (操作方法 教程 代码示例)

    • 二进制化 (教程 API文档)

      * 此图像过滤器将每个像素变为黑色或白色,没有中间色。 可能提高OCR性能,用于文本与背景对比度非常低的情况。
    • 灰度 (API文档)

      * 此图像过滤器将每个像素转换为灰度阴影。 不太可能提高OCR准确性,但可能提高速度。
    • 反转 (教程 API文档)

      * 反转每种颜色。 例如,白变黑:黑变白。
    • 替换颜色 (API文档)

      * 将图像中的一种颜色替换为另一种颜色,并设定一个阈值。
    • 选择文本颜色 (API文档)

      * 将图像中的一种颜色替换为另一种颜色,并设定一个阈值。

应用裁剪区域

OCR结果

简单数据输出

操作方法 代码示例

  • .NET文本字符串
  • 条形码和二维码数据
  • 图片

结构化数据输出

操作方法 代码示例

  • 页面
  • 段落
  • 线
  • 单词
  • 字符

导出文档

突出显示页面上的文本以进行调试

  • 在检测到的字符/单词/行/段落周围画红色框以突出显示,并将其保存为.png以便调试。

状态和分析