在当今的数字时代,我们经常会遇到需要从图像中提取和比较文本的情况。在处理大量图像或低质量图像时,此任务可能特别具有挑战性。在这篇博文中,我们将学习如何使用 C# 比较图像中的文本。我们将介绍实施 Aspose.OCR for .NET 的最佳实践,这是一个功能强大的 OCR 引擎,可以从图像中高精度地提取文本。
本文将涵盖以下主题:
用于比较图像中文本的 C# OCR API
为了比较两个不同图像中的文本,我们将使用 Aspose.OCR for .NET API。它是一个强大的光学字符识别 (OCR) 引擎,使开发人员能够从图像中高精度地提取文本。它可以比较两个图像上的文本,而不管字体、文本大小、大小写、样式和颜色。凭借其先进的图像处理算法,Aspose.OCR for .NET 可以识别和提取多种图像格式的文本,包括 TIFF、PNG、JPG 和 BMP。这使其成为自动执行文档数字化、数据输入和发票处理等任务的理想工具。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.OCR
使用 C# 比较图像中的文本
我们可以按照以下步骤以编程方式比较两个图像中的文本:
- 创建 AsposeOcr 类的实例。
- 初始化一个 RecognitionSettings 类对象。
- 调用 CompareImageTexts() 方法检查两个图像是否包含相同的文本。
- 最后,展示一下结果。
以下示例代码显示了如何使用 C# 比较图像中的文本。
using Aspose.OCR;
// 初始化 OCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 创建 RecognitionSettings 的实例
RecognitionSettings recognitionSettings = new RecognitionSettings();
// 图片路径
var image1 = "C:\\Files\\sample1.jpg";
var image2 = "C:\\Files\\sample2.jpg";
// 检查两个图像是否包含相同的文本。
var result = recognitionEngine.CompareImageTexts(image1, image2, recognitionSettings, true);
// 如果图像具有相同的文本(相似度为 90%)则为真。
if (result == true)
{
Console.WriteLine("Images contain the same text");
}
输出:
Images contain the same text
在 C# 中获取图像文本相似度
我们可以通过编程方式比较两个图像中的文本,并按照以下步骤获取图像的文本相似度百分比:
- 创建 AsposeOcr 类的实例。
- 初始化 RecognitionSettings 类的对象。
- 调用 ImageTextDiff() 方法。它以图像路径和 RecognitionSettings 对象作为参数。
- 最后,展示一下结果。
下面的示例代码展示了如何使用 C# 在比较图像中的文本时获取图像中文本之间的相似度百分比。
using Aspose.OCR;
// 初始化 OCR 引擎
AsposeOcr recognitionEngine = new AsposeOcr();
// 创建 RecognitionSettings 的实例
RecognitionSettings recognitionSettings = new RecognitionSettings();
// 图片路径
var image1 = "C:\\Files\\sample1.jpg";
var image2 = "C:\\Files\\sample3.jpg";
// 计算文本之间的相似度百分比
float distance = recognitionEngine.ImageTextDiff(image1, image2, recognitionSettings, true);
Console.WriteLine($"The image texts are {distance * 100}% similar");
输出:
The image texts are 14.161849% similar
获得免费许可证
您可以获得免费的临时许可证 来使用 Aspose.OCR 库。评估和探索其功能是完全免费的。
结论
在本文中,我们学习了如何使用 C# 比较图像中的文本。我们还看到了如何以编程方式计算文本相似度。此外,您可以使用 文档 了解有关 Aspose.OCR for .NET API 的更多信息。如有任何疑问,请通过我们的免费支持论坛 与我们联系。