光学字符识别 (OCR) 是从图像中提取文本的过程。您可能需要从中提取文本信息的在线和离线图像。您可以对离线图像执行 OCR,但您可能认为要对在线图像执行 OCR,您必须下载它们。好吧,这不是必需的。在本文中,您将学习如何使用 C++ 的 URL 对图像执行 OCR。
用于对来自 URL 的图像执行 OCR 的 C++ API
Aspose.OCR for C++ 是一种光学字符识别 API,可以可靠地对图像和扫描文档执行 OCR 操作。该 API 还使您能够对来自 URL 的图像执行 OCR。您可以通过 NuGet 安装 API,也可以直接从 下载 部分下载。
PM> Install-Package Aspose.OCR.Cpp
通过使用 C++ 对来自 URL 的图像执行 OCR 来识别文本
以下是对来自 URL 的图像执行 OCR 的步骤。
- 为结果准备缓冲区。
- 设置识别设置。
- 使用 asposeocrpagefromuri (const char\uri, wchart\buffer, sizet buffersize, RecognitionSettings settings) 方法对图像执行 OCR。
以下示例代码展示了如何使用 C++ 对来自 URL 的图像执行 OCR。
#include <fcntl.h>
#ifdef _WIN32
#include <corecrt_io.h>
#endif
int main()
{
#ifdef _WIN32
_setmode(_fileno(stdout), _O_U16TEXT);
#else
setlocale(LC_CTYPE, "");
#endif
// 源文件地址
const char* uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";
// 为结果准备缓冲区(在符号中,len_byte = len * sizeof(wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };
// 设置识别设置
RecognitionSettings settings;
settings.format = export_format::text;
// 对图像进行 OCR 操作。
size_t res = asposeocr_page_from_uri(uri, buffer, len, settings);
std::wcout << buffer << L"\n";
}
通过使用 C++ 定义识别区域来识别选定图像区域中的文本
如果您不想对整个图像执行 OCR 并希望从特定图像区域获取结果,您可以定义识别区域来执行此操作。以下是为 OCR 操作设置识别区域的步骤。
- 在 rect 结构的数组中定义识别区域。
- 为结果准备缓冲区。
- 将 RecognitionSettings.rectangles 结构成员的值设置为等于先前定义的识别区域数组。
- 将 RecognitionSettings.rectanglessize 结构成员的值设置为等于识别区域数组的大小。
- 使用 asposeocrpagefromuri (const char\uri, wchart\buffer, sizet buffersize, RecognitionSettings settings) 方法对图像执行 OCR。
以下示例代码演示了如何使用识别区域来识别使用 C++ 的图像特定区域中的文本。
#include <fcntl.h>
#ifdef _WIN32
#include <corecrt_io.h>
#endif
int main()
{
#ifdef _WIN32
_setmode(_fileno(stdout), _O_U16TEXT);
#else
setlocale(LC_CTYPE, "");
#endif
// 源文件地址
const char* uri = "https://www.castlegateit.co.uk/wp-content/uploads/2016/09/justified_text.png";
// 定义识别区域
rect rectangles[2] = { {90, 180, 770, 333} , { 923, 613, 780, 96 } };
// 为结果准备缓冲区(在符号中,len_byte = len * sizeof(wchar_t))
const size_t len = 4096;
wchar_t buffer[len] = { 0 };
// 设置识别设置
RecognitionSettings settings;
settings.format = export_format::text;
// 设置识别区域
settings.rectangles = rectangles;
// 指定识别区域数组的大小
settings.rectangles_size = 2;
// 对图像进行 OCR 操作。
size_t res = asposeocr_page_from_uri(uri, buffer, len, settings);
std::wcout << buffer << L"\n";
}
获得免费许可证
为了在没有评估限制的情况下试用 API,您可以申请 免费的临时许可证。
结论
在本文中,您学习了如何使用 C++ 对来自任何 URL 地址的图像执行 OCR。此外,您还了解了如何定义识别区域以仅对图像的选定区域执行 OCR。 Aspose.OCR for C++ 是一个强大的 API,它提供了许多用于在图像上执行 OCR 的附加功能。您可以通过访问 官方文档 来详细探索 API。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。