该OCR(光学字符识别)技术,您可以读取和转换文本中的图像或扫描文件到机器可读的形式。OCR 有各种用例,包括从凭证中读取代码、使文本可编辑、自助存储、将打印的文档转换为数字格式等。市场上有各种 OCR 工具和库,但是,OCR 结果的可靠性是一个关键因素。在本文中,我将向您展示如何创建您自己的 OCR 应用程序并使用 C++ 以编程方式将图像转换为文本。
将图像转换为文本的 C++ OCR 库
Aspose 提供了一个强大的C++ OCR 库,它使用深度学习为您提供更可靠和接近准确的 OCR 结果。您可以从GitHub下载库文件以及示例项目。
使用 C++ 将图像页面转换为文本
让我们首先检查图像包含多行文本的场景。如果您有一本扫描的书,其中书的每一页都包含一堆文本行,就会出现这种情况。在这种情况下,以下是将图像转换为文本的步骤。
- 在字符串变量中设置图像的路径。
- 准备一个缓冲区来存储 OCR 结果。
- 使用 aspose::ocr::page(const char *image_path, wchar_t *buffer, size_t buffer_size) 函数执行 OCR。
- 打印结果或将它们保存在文件中。
以下代码示例展示了如何使用 C++ 执行 OCR 并将图像转换为文本。
使用 C++ 对单行图像执行 OCR
在前面的示例中,我们转换了具有多个文本行的图像。但是,可能会出现图像仅包含一行文本(例如标题或标语)的情况。以下是在这种情况下执行 OCR 的步骤。
- 使用字符串变量来设置图像的路径。
- 创建一个缓冲区来存储 OCR 结果。
- 使用 aspose::ocr::line(const char *image_path, wchar_t *buffer, size_t buffer_size) 函数执行 OCR。
- 保存或打印 OCR 结果。
以下代码示例展示了如何使用 C++ 对具有单行文本的图像执行 OCR。
在 C++ 中将图像的特定区域转换为文本
您还可以自定义 API 以限制要执行 OCR 的图像区域。在这种情况下,您可以在图像上创建一个矩形以访问所需区域。以下是从图像的特定区域提取文本的步骤。
- 在字符串变量中设置图像的路径。
- 准备一个缓冲区来存储 OCR 结果。
- 使用 aspose::ocr::page_rect(const char *image_path, wchar_t *buffer, size_t buffer_size, int x, int y, int w, int h) 函数执行 OCR。
- 打印 OCR 结果。
以下代码示例展示了如何使用 C++ 将图像的特定区域转换为文本。
结论
在本文中,您学习了如何使用 Aspose 的 OCR 库在 C++ 中将图像转换为文本。我们已经了解了如何对具有单行或多行文本的图像执行 OCR 以及如何从图像的特定区域读取文本。您可以使用文档了解有关Aspose.OCR for C++ 的更多信息。