识别图像 OCR 上的文本

光学字符识别 (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 的步骤。

以下示例代码展示了如何使用 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 操作设置识别区域的步骤。

以下示例代码演示了如何使用识别区域来识别使用 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。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看