在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
光学字符识别技术(光学字符识别)可将印刷或手写文本转换为机器可读的数字格式。扫描文件时(如发票或收据)您的计算机会将扫描文件保存为图像文件。但是,扫描图像中的文本无法使用普通文本编辑器进行编辑、搜索或计算。
然而,OCR 可以处理图像、提取文本并将其转换为计算机可以阅读的文本格式。 这样就可以从各种来源(包括 PDF 文件和其他扫描图像)中提取文本。 此外,OCR 功能不仅限于简单的文本提取,还包括主要的图像格式和 PDF 文档,并将其转换为可搜索的 OCR 数据。
在 C# 中,开发人员可以通过各种库利用 OCR 的强大功能,其中一个功能强大的库是IronOCR从铁软件. 在本教程中,我们将探讨 OCR 的基础知识,并演示如何使用IronOCR以在 C# 中高效执行字符识别。
在 Visual Studio 中创建一个全新的 C# 项目并命名该项目。
安装IronOCR翻译时必须使用 .NET 库,并将其包含在项目文件夹中。
利用IronOCR使用 Tesseract 从图像中读取文本。
利用IronOCR在图像中阅读文本的高级功能
IronOCR开发的一个 C# 库。铁软件译文必须是能够提供高级 OCR 功能的语言。 它可以从图像、PDF 和扫描文档中准确提取文本。 在我们深入研究代码之前,请确保您的项目中安装了 IronOCR。
IronOCR通过提高准确性和速度,提升了广泛使用的 Tesseract OCR 引擎的功能。 它是一个强大的解决方案,可从各种来源(包括图像、PDF 和各种文档格式)中提取文本。
IronOCR 支持超过 127 种语言,善于处理多语言需求,是要求语言多样性的应用程序的理想选择。
提取的文本可以方便地输出为纯文本或结构化数据,以便无缝集成到进一步的处理管道中。 此外,IronOCR 还可帮助直接从图像输入创建可搜索的 PDF。
IronOCR 与 C#、F# 和 VB.NET 兼容,可在各种 .NET 环境中无缝运行,包括 8、7、6、Core、Standard 和 Framework 版本。
IronOCR利用 Tesseract 5 的强大功能,在 .NET 生态系统中实现最佳性能。
有了 IronOCR,用户可以精确定义文档中的特定区域,实现有针对性的 OCR 处理。 该功能可将处理能力集中到最需要的地方,从而提高准确性和效率。
该库提供一套图像预处理功能,如去斜和降噪。 即使在处理不完美的源图像时,这些工具也能确保卓越的结果,最终提升整体 OCR 体验。
现在,我们将开发一个演示应用程序,利用 IronOCR 从图像中读取文本。
Visual Studio: 确保您已安装Visual Studio或任何其他 C# 开发环境。
首先,让我们使用 Visual Studio 创建一个新的控制台应用程序,如下图所示。
请在下面提供项目名称和地点。
选择项目所需的 .NET 版本。
单击 "创建 "按钮创建新项目。
IronOCR可以在NuGet软件包管理器控制台如下所示。 使用提供的命令安装软件包。
使用 Visual Studio NuGet 包管理器搜索 IronOCR 并安装到您的项目文件夹。
安装完成后,应用程序即可使用IronOCR从图像中读取文字。
IronOCR 是提供 Tesseract 5 OCR 功能的独家 .NET 库。 目前,它是所有编程语言中最复杂的 Tesseract 5 库。 IronOCR 将 Tesseract 5 无缝集成到各种 .NET 环境中,包括 Framework、Standard、Core、Xamarin 和 Mono,确保在整个生态系统中提供全面支持。
请将下面的图片文件作为输入。 现在,让我们看看如何阅读该图像文件中的文本
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
using IronOcr;
public class Program
{
public static void Main(String [] args)
{
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(@"sample1.png");
var ocrResult = ocrTesseract.Read(ocrInput);
Console.WriteLine(ocrResult.Text);
}
}
Imports IronOcr
Public Class Program
Public Shared Sub Main(ByVal args() As String)
Dim ocrTesseract = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage("sample1.png")
Dim ocrResult = ocrTesseract.Read(ocrInput)
Console.WriteLine(ocrResult.Text)
End Sub
End Class
我们首先创建 IronTesseract,并进行必要的配置
然后,我们将所示的示例图片加载到 OcrInput 对象中
IronTesseract.Configuration对象允许高级用户访问C#/.NET中的底层Tesseract API,从而可以进行详细的设置配置,以进行微调和优化。 以下是一些可能的高级配置
您可以使用语言属性指定 OCR 的语言。 例如,要将语言设置为英语,请使用
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
PageSegmentationMode 决定了 Tesseract 如何分割输入图像。 选项包括 AutoOsd、SingleBlock、SingleLine 等。 例如
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
您可以通过设置特定变量对 Tesseract 进行微调。 例如,禁用并行化:
ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ("tessedit_parallelize") = False
使用 WhiteListCharacters 和 BlackListCharacters 控制 Tesseract 可识别的字符。 例如
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ocr.Configuration.BlackListCharacters = "`ë ^"
探索其他 Tesseract 配置变量,根据您的需求自定义行为。 例如:
ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ("classify_num_cp_levels") = 3
ocr.Configuration.TesseractVariables ("textord_debug_tabfind") = 0
' ... (more variables)
现在,让我们尝试使用高级设置解码相同的图像
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
using IronOcr;
public class Program
{
public static void Main()
{
Console.WriteLine("Decoding using advanced features");
var ocrTesseract = new IronTesseract() // create instance
{
Language = OcrLanguage.EnglishBest, // configure best english language
Configuration = new TesseractConfiguration()
{
ReadBarCodes = false, // read bar codes false
BlackListCharacters = "`ë
^", // black listed characters
WhiteListCharacters = null, // no white list, allow all
PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
TesseractVariables = null, // no custom variable used
},
MultiThreaded = false,
};
using var ocrInput = new OcrInput(); // create a disposible ocr input object
ocrInput.AddImage(@"sample1.png"); // load the sample image
var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
Console.WriteLine(ocrResult.Text);// output the image
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronOCR 配置:一个 IronTesseract 实例(主 IronOCR 类)创建并分配给变量 ocrTesseract。
配置设置适用于 ocrTesseract:
语言:指定 OCR 的语言(在这种情况下,英语).
配置:一个 TesseractConfiguration 对象,允许进一步定制:
ReadBarCodes:禁用读取 BarCode。
BlackListCharacters:指定要列入黑名单的字符(不认识的字符).
白名单字符:未指定白名单,允许使用所有字符。
PageSegmentationMode:将页面分割模式设置为 "AutoOsd"。
OCR 输入和图像加载: 一个 using 块创建了一个 OcrInput 类型的一次性 ocrInput 对象。 图像文件 "sample1.png "已添加到 ocrInput 中。
文本提取:在ocrTesseract 上调用 Read 方法,并传入 ocrInput。
翻译结果存储在 ocrResult 变量中。
在使用IronOCR时,您可以使用各种图像过滤器,这些过滤器可以帮助在执行 OCR 之前对图像进行预处理。 这些过滤器可以优化图像质量、提高可视性、减少噪音或伪影。 它们有助于提高 OCR 操作的性能。
旋转:
旋转滤镜允许您按指定的度数顺时针旋转图像。如需逆时针旋转,请使用负数。
Deskew:
纠偏过滤器可纠正图像偏斜,确保文本直立和正交。 这对 OCR 特别有用,因为 Tesseract 对正确方向的扫描效果最佳。
规模:
缩放过滤器按比例缩放 OCR 输入页面。
二进制:
二值化滤镜会将每个像素转换为黑色或白色,没有中间值。 在文本与背景对比度非常低的情况下,它可以提高 OCR 性能。
ToGrayScale.ToGrayScale.ToGrayScale:
ToGrayScale 过滤器可将每个像素转换为灰度。 虽然不太可能大幅提高 OCR 的准确性,但可以提高速度。
Invert:
反转滤镜可以反转颜色--白色变为黑色,黑色变为白色。
ReplaceColor:
ReplaceColor 过滤器将图像中的特定颜色替换为另一种颜色,并考虑一定的阈值。
对比:
对比度过滤器可自动增加对比度。它通常可以提高低对比度扫描的 OCR 速度和准确性。
Dilate 和 Erode:
这些高级形态学过滤器可以处理图像中的对象边界。
Erode 删除对象边界上的像素。
锐化:
锐化滤镜可将模糊的 OCR 文档锐化,并将 alpha 通道平铺为白色。
去噪:
去噪滤波器可去除数字噪声。将其用于预期会出现噪音的地方。
DeepCleanBackgroundNoise:
只有在已知文档背景噪音极大的情况下,才能使用这种严重的背景噪音去除过滤器。 它可能会降低干净文档的 OCR 准确性,并且是 CPU 密集型的。
增强分辨率:
EnhanceResolution 过滤器可增强低质量图像的分辨率。 由于可以自动解决,因此不需要经常翻译。
下面是一个如何在 C# 中使用 IronOCR 应用过滤器的示例:
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
文档数字化: OCR 广泛用于将扫描的纸质文档(如发票、收据、表格和合同)转换为数字格式。 这一数字化过程简化了文档的存储、检索和管理,减少了纸张杂乱,提高了效率。
数据提取: OCR 可以从扫描文件、图像和 PDF 中提取文本和数据。 提取的数据可用于自动数据录入、内容分析、索引编制以及集成到数据库或业务系统中。
图像中的文字识别: OCR 技术可以从印刷或手写文本图像中提取文字,用于编制索引和搜索。 这种能力可用于各种应用,包括增强现实、基于图像的搜索引擎和翻译服务。
自动车牌识别(ALPR): ALPR 系统利用 OCR 技术从安装在交通监控、停车场管理、收费和执法应用中的摄像头捕获的图像或视频流中读取车牌号码。
无障碍解决方案: OCR 在为视觉障碍人士创建无障碍内容方面发挥着至关重要的作用。 通过将图像或文档中的文本转换为语音或盲文,OCR 可帮助残障人士获取信息。
身份验证: OCR 技术用于身份验证流程,如扫描和处理护照、驾照和身份证等身份证件。 它有助于验证文件的真实性,并提取相关信息用于身份验证目的。
银行和金融: OCR 用于银行和金融领域,如读取支票、处理发票、转换现有 PDF 文档、从财务报表中提取数据,以及自动化基于文档的工作流程,以提高金融业务的准确性和效率。
医疗记录管理: 在医疗保健领域,OCR 可帮助将手写或打印的医疗记录转换为电子格式,有助于电子健康记录的生成。(电子健康记录系统)译文还必须包括以下内容:管理、数据分析和决策过程。
自动翻译: 翻译工具和语言学习应用程序中集成了 OCR 技术,可将印刷文本从一种语言转换为另一种语言。 用户可以使用设备捕捉文本,然后通过 OCR 将其实时翻译成所需的语言。
IronOCR. 请提供以下详细信息,以便将密钥发送到您的电子邮件 ID
通过购买或免费试用获得密钥后,请按照以下步骤使用密钥
设置许可证密钥:使用代码设置您的 IronOCR 许可证密钥。 在应用程序启动时添加以下一行(在使用 IronOCR 之前):
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
全球应用钥匙(Web.Config 或 App.Config):要在应用程序中全局应用密钥,请使用配置文件(Web.Config 或 App.Config). 在您的 appSettings 中添加以下键:
<configuration>
<!-- Other settings -->
<appSettings>
<add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
</appSettings>
</configuration>
<configuration>
<!-- Other settings -->
<appSettings>
<add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
</appSettings>
</configuration>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<configuration> <!-- Other settings -- > <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration>
Using .NET Core appsettings.json:对于 .NET Core 应用程序,请在项目根目录中创建 appsettings.json 文件。 将 "IronOcr.LicenseKey "键替换为您的许可证值:
{
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
{
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
If True Then
"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
End If
测试许可证密钥:通过测试验证您的密钥是否已正确安装:
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
Dim result As Boolean = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01")
总之、IronOCR,起价为 749 美元。利用 OCR 的强大功能IronOCR并为你的 C# 项目开启一个充满可能性的世界。