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 适用于 .NET5、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、桌面和控制台创建应用程序。

操作系统

IDE

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

认证

  • Microsoft Authenticode

    • DigiCert 可信 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 配置。

国际语言

教程

阅读文本和条形码

专业文档 (操作方法)

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

  • 优化以读取包含大量文本的扫描文件或照片的纸质文件。 车牌

  • Optimized for reading license plate numbers from photos. * 护照

    • 优化用于通过扫描可机读区域,从照片中读取和提取护照信息 (MRZ) 内容。
    • 照片
  • Optimized for reading images with difficult-to-read text. 屏幕截图

  • 优化用于读取包含难以阅读文本的截图。

并发

单线程与多线程 (操作方法 代码示例)

  • 异步支持 (操作方法 API文档)

  • 中止令牌 (代码示例)
  • 在读取大型输入文件时,如果程序或应用程序运行时出现卡顿,允许用户以毫秒为单位暂停当前线程一段时间。
  • 超时 (代码示例)

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

计算机视觉

操作方法 API文档

  • 基于我们先进的训练模型,利用计算机视觉查找文本。IronOCR 利用 OpenCV 使用计算机视觉来检测图像中存在文字的区域。这对于包含大量噪点的图像、文本位于多个不同位置的图像以及文本扭曲的图像非常有用。在 IronOCR 中使用计算机视觉将确定文本区域的存在位置,然后使用 Tesseract 尝试读取这些区域。

OCR输入

代码示例

从多种格式中读取

过滤器

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

    • 锐化 (API文档)

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

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

      * 消除数字噪声。该滤波器只能用于预计会出现噪点的地方。将 Alpha 通道平铺为白色。
    • 缩减 (API文档)

      * 高级形态学_Dilation_(扩张)是在图像中物体的边界上增加像素。与 Erode 相反
    • 蜕变 (API文档)
  • 高级形态学。Erosion(腐蚀)删除对象边界上的像素。与 "放大 "相反
  • 修正图像方向 (操作方法 教程 代码示例)

    • 旋转 (教程 API文档)

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

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

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

      * 该图像滤镜可将每个像素变成黑色或白色,没有中间色。可在文字与背景对比度非常低的情况下提高 OCR 性能。
    • 灰度 (API文档)

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

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

      * 用具有一定阈值的另一种颜色替换图像中的一种颜色。
    • 选择文本颜色 (API文档)

      * 用具有一定阈值的另一种颜色替换图像中的一种颜色。

应用作物区域

OCR结果

简单数据输出

操作方法 代码示例

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

  • 图片

结构化数据输出

操作方法 代码示例

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

出口文件

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

  • 在检测到的字符/单词/行/段周围绘制红框作为高亮显示,并保存为 .png 格式以便调试。

状态和分析