C# 和 .NET 中的中文 OCR.

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

本文档的其他版本:

IronOCR 是一个 C# 软件组件,允许 .NET 程序员从图像和 PDF 文档中读取 126 种语言(包括中文)的文本。 中文语言包包含简体中文和繁体中文。

它是 Tesseract 的一个高级分支,专为 .NET 开发人员构建,在速度和准确性方面通常优于其他 Tesseract 引擎。 该库能够识别各种语言(包括中文)的不同格式的图像和文档。 它支持超过 125 种语言,并提供相较于竞争对手的高识别准确度。 IronOCR 的 API 设计时考虑了可扩展性和定制化。 您可以通过向跟踪器添加您的调优数据或特征,帮助 IronOCR 实现高吞吐量和高准确度。 IronOCR 使用了多种光学字符识别技术。 它可以安装在 Windows PC、Linux、macOS 和其他主流平台上。

Iron赭石。Languages.Chinese 的内容

此软件包包含 352 种适用于 .NET 的 OCR 语言:

  • 中文简体
  • 中文简体最佳
  • 中文简体Fast
  • 中文简体垂直
  • 中文简体垂直最佳
  • 中文简体垂直快速
  • 中文传统
  • 中国传统美食精选
  • 中国传统斋戒
  • 中文传统垂直
  • 中文传统垂直Best
  • 中文传统垂直Fast

下载

我们可以从以下链接下载中文语言包:

使用 IronOCR 识别中文

创建或打开 C# 项目

要开始使用 IronOCR,我们必须创建一个 C# .NET 项目。 为此,我们使用 Visual Studio 2022。 您可以根据自己的需求选择版本。 为了获得流畅的使用体验,建议使用最新版本的 Visual Studio。 我们将创建一个图形用户界面来选择图像。 我们还可以通过提供图片的直接路径,在控制台应用程序中使用 IronOCR。 按照以下步骤在 Visual Studio 2022 中创建 C# 项目:

  • 打开 Visual Studio 2022。
  • 点击"创建一个新项目"按钮。
Chinese Ocr 1 related to 创建或打开 C# 项目

在搜索栏中输入"Windows",从搜索结果中选择"Windows Form"*应用程序,然后单击"下一步"按钮。

Chinese Ocr 2 related to 创建或打开 C# 项目
  • 给项目命名。 我将此项目命名为"ChineseOCR" 。 输入姓名后,点击"下一步"按钮。
Chinese Ocr 3 related to 创建或打开 C# 项目

在下一个屏幕上选择.NET 框架*。 根据项目需求选择 .NET 框架。 本教程选用的是.NET 5.0版本。

Chinese Ocr 4 related to 创建或打开 C# 项目
  • 选择完成后,点击"创建"按钮。 它可以轻松地在 Visual Studio 中创建 C# Windows 窗体项目。

项目已创建完成,现在可以在 IronOCR 库中使用。 我们还可以使用现有的 C# 项目。 打开项目并开始安装 IronOCR 库。 以下部分将探讨在 C# 项目中安装 IronOCR 库的方法。

安装

使用 NuGet 包管理器

要使用 NuGet 包管理器安装 IronOCR 库,我们必须打开 NuGet 包管理器界面。 请按照以下步骤安装 IronOCR 库:

  • 点击主菜单中的"工具",从下拉菜单中,将鼠标悬停在"NuGet 程序包管理器"上,然后选择"管理解决方案的 NuGet 程序包管理器"。
Chinese Ocr 5 related to 使用 NuGet 包管理器

这将打开 NuGet 包管理器界面。 转到浏览选项卡并搜索 IronOCR Chinese。 从搜索结果中选择正确的软件包,然后点击"安装"按钮进行安装。

Chinese Ocr 6 related to 使用 NuGet 包管理器
  • 它将开始安装库。 安装完成后,您就可以在项目中使用 IronOCR 库了。

使用包管理器控制台

使用控制台始终是一个简单的选择。 我们也可以使用软件包管理器控制台安装 IronOCR 库。 请按照以下步骤安装 IronOCR 库:

  • 在 Visual Studio 中打开程序包管理器控制台。 它通常位于 Visual Studio 的底部。
  • 在控制台中输入以下命令:

    Install-Package IronOCR.Languages.Chinese
  • 您将在控制台中看到库的安装进度。 它会自动安装库。 安装完成后,我们的项目就可以使用 IronOCR 库了。

代码示例:中文OCR

现在,是时候编写实现 IronOCR 库以支持中文识别的代码了。 首先,我们需要开发用于选择图像文件的前端界面。让我们来看看该如何实现。

前端开发

我们将使用"工具箱"元素来设计正面。 我们将创建一个按钮、一个图片框、一个富文本框和两个标签。 我们将从工具箱中拖放这些元素,并将它们放置在窗口窗体中。 我们将妥善处理这些要素。

该按钮用于从电脑中选择图像文件。 图片框将加载选定的图像文件,富文本框将显示输出文本。 您可以根据需要调整每个元素的大小。 最终的前端设计将如下所示:

Chinese Ocr 7 related to 前端开发

运行项目时会弹出此窗口。 我们已将窗口对齐方式设置为在屏幕中央显示。 所以,这个屏幕会出现在屏幕中央。

我们的前端已经准备就绪。 接下来,该为按钮添加后端功能了。

IronOCR的后端代码

我们必须先导入 IronOCR 命名空间才能在代码中使用它。 在文件顶部写入以下行:

using IronOCR;
using IronOCR;
$vbLabelText   $csharpLabel

我们将使用"选择图像"按钮来选择图像并将图像加载到图片框中。 IronOCR 将处理简体中文文本图像,并在富文本框中显示输出文本。 让我们通过双击按钮来添加按钮的功能。 编写以下代码以实现所述功能:

private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

赭石。Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = 赭石。Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
private void btn_image_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    if (open.ShowDialog() == DialogResult.OK)
    {
        // display image in picture box  
        img_image.Image = new Bitmap(open.FileName);

        var Ocr = new IronTesseract();

赭石。Language = OcrLanguage.ChineseTraditional;

using (var Input = new OcrInput(open.FileName))
        {
            var Result = 赭石。Read(Input);

            txt_output.Text = Result.Text;
        }
    }
}
$vbLabelText   $csharpLabel

当用户点击按钮时,将出现一个对话框供用户选择图像。 当用户选择图片时,图片将自动加载到图片框中。 我们使用Bitmap() 函数在图片框中打印图像。 之后,IronOCR会将图像转换为中文文本。 我们设置了 OCR。 Language to ChineseTraditional 识别繁体中文文本。 赭石。 读取函数将读取进程并将 OCR 结果存储在 Result 变量中。 如果您需要将文本保存为 PDF、文本或 HTML 格式,您可以使用 SaveAs 功能将文件保存为您想要的任何输出格式 — IronOCR 支持多种输出格式。

运行项目

现在是时候运行项目了。 在 Visual Studio 中单击"运行"按钮。 我们将在屏幕上看到这个画面。

Chinese Ocr 8 related to 运行项目

点击"选择图像"按钮。 它将打开"选择文件"对话框。 选择图像文件并按回车键。

Chinese Ocr 9 related to 运行项目

它会将图片加载到图片框中,自动扫描图像,并在文本框中显示输出结果。

Chinese Ocr 10 related to 运行项目

这是我们选择的图像的输出结果。 IronOCR 也支持读取和扫描 PDF 文件。 我们可以使用可编辑的 PDF 文件格式,通过 IronOCR 进行扫描和识别文本。 这也可以用不同的语言来完成。 IronOCR 可以将现有的 PDF 文档转换为可搜索的 PDF。 IronOCR 拥有多种图像滤镜,使图像清晰易懂。 以下是筛选条件:

  • 输入.二进制化()
  • 输入.对比度()
  • 输入.Descew() 输入.DeNoise() 输入.Dilate()
  • 输入.增强分辨率(300)

所有这些功能都能提高字符的可见性。 IronOCR 使用这些功能来清除 PDF 并生成可搜索的 PDF。 让我们来看看如何实现这一点:

using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = 赭石。Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
    Input.AddPdf("scan.pdf")
    // clean up twisted pages
    Input.Deskew();
    var Result = 赭石。Read(Input);
    Result.SaveAsSearchablePdf("searchable.pdf");
}
$vbLabelText   $csharpLabel

许可

IronOCR 可免费用于开发。 您可以免费使用其所有功能。 IronOCR 还提供免费试用版,无需支付任何费用即可进行生产。 Iron Software 目前还提供一项热门优惠——五款软件产品套装,只需两款的价格即可购买。 只需一次性支付两款软件产品的费用,即可获得包括 IronPDF 和 IronXL 在内的全部五款产品。 您可以通过此链接了解更多关于许可方面的信息。