加载和保存OCR区域- Windows C DLL

本教程展示如何使用LEADTOOLS SDK在Windows C DLL应用程序中加载、显示和保存OCR区域。

概述
总结 本教程介绍如何在Windows C DLL应用程序中加载和保存OCR区域
完成时间 30分钟
Visual Studio项目 下载教程项目(19kb)
平台 Windows C DLL应用程序
IDE Visual Studio 2017, 2019
开发许可 下载LEADTOOLS
用另一种语言试试

所需的知识

通过回顾章节,熟悉创建项目和使用LEADTOOLS OCR技术的基本步骤添加引用和设置License而且将图像转换为可搜索的PDF与OCR教程,在工作之前加载和保存OCR区域- Windows C DLL教程。

创建项目并添加LEADTOOLS引用

中创建的项目的副本开始将图像转换为可搜索的PDF与OCR教程。如果项目不可用,请按照该教程中的步骤创建它。

要利用LEADTOOLS OCR功能,请添加所需的头文件和库文件。打开预编译的头文件(或pch.hstdafx.h,取决于所使用的Visual Studio版本),并确保添加了以下行。

# include“c: \ LEADTOOLS22 \ \ ltocr.h包括”#pragma comment (lib,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ Ltocr_x.lib”// OCR支持

请注意

有关特定应用程序功能所需的dll的完整列表,请参阅包含在应用程序中的文件- C API

设置License文件

许可证解锁项目所需的特性。它必须在调用任何工具箱功能之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License

有两种类型的运行时许可证:

请注意

中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。

添加显示OCR区域代码

随着项目的创建、引用的添加、许可证的设置和加载图像代码的添加,编码就可以开始了。

解决方案资源管理器,双击资源文件(.rc)。

添加一个新的产业园区菜单旁边的下拉菜单光学字符识别菜单。将下表中的三个菜单项添加到新增的菜单项中菜单。

菜单项文本 项ID
份区 ID_ZONES_DISPLAYZONES
装区域 ID_ZONES_LOADZONES
并保存区 ID_ZONES_SAVEZONES

导航到指向函数在项目的CPP文件中。在ID_FILE_OPEN的调用L_OcrPage_FromBitmap函数并添加调用L_OcrPage_AutoZone下面,如下所示。

//在下面一行:L_OcrPage_FromBitmap(ocrEngine, &ocrPage, &LEADBmp, L_OcrBitmapSharingMode_None, NULL, NULL);//添加如下一行:L_OcrPage_AutoZone(ocrPage, NULL, NULL);

开关(wmId)语句的下面WM_COMMAND案例,添加以下代码创建一个新案例。这个新案例将粉刷OCR区域在OcrPage对观众来说。

开关(wmId)情况下ID_ZONES_DISPLAYZONES:如果(ocrPage !)对话框(hWnd,文本(“无法搜索OCR区域;没有添加页面”),文本(“LEADTOOLS演示”), MB_ICONERROR);打破L_UINT uZones = 0;L_OcrPage_GetZoneCount (ocrPage &uZones);如果(0 == uZones)对话框(hWnd,文本(“没有OCR区域可以绘制。”),文本(“LEADTOOLS演示”), MB_ICONERROR);打破HDC HDC = GetDC(hWnd);SelectObject (hdc GetStockObject (NULL_BRUSH));(L_UINT uZone = 0;uZone < uZones;uZone + +)L_OcrZone ocrZone = {0};ocrZone。StructSize =运算符ocrZone;L_OcrPage_GetZoneAt(ocrPage, uZone, &ocrZone);intleft = ocrZone.Bounds.left;inttop = ocrZone.Bounds.top;intright = ocrZone.Bounds.right;int底部= ocrZone.Bounds.bottom;TCHAR szZoneNo [32];wsprintf (szZoneNo文本(“区域编号%d”), uZone);TextOut(hdc, left, top, szZoneNo, lstrlen(szZoneNo));矩形(hdc,左,上,右,下);ReleaseDC (hWnd, hdc);对话框(hWnd,文本(画在窗户上的区域。按OK清除它们”),文本(“LEADTOOLS演示”), MB_ICONINFORMATION);InvalidateRect(hWnd, NULL, TRUE);打破//保留其余的代码

添加加载和保存OCR区域的代码

指向函数,在开关(wmId)语句,添加如下所示的两个新用例及其代码。这段代码将允许用户加载和保存OCR区域。

开关(wmId)情况下ID_ZONES_LOADZONES:如果(ocrPage !)对话框(hWnd,文本(“无法加载OCR区域;没有添加页面”),文本(“LEADTOOLS演示”), MB_ICONERROR);打破TCHAR szZoneFileName[260] = TEXT("");//文件名称如果= GetZoneLoadingName(hWnd, szZoneFileName, ARRAYSIZE(szZoneFileName)))打破L_OcrPage_LoadZonesFile(ocrPage, szZoneFileName, 1);打破情况下ID_ZONES_SAVEZONES:如果(ocrPage !)对话框(hWnd,文本(“无法保存OCR区域;没有添加页面”),文本(“LEADTOOLS演示”), MB_ICONERROR);打破TCHAR szZoneFileName[260] = TEXT("");//文件名称如果= GetZoneSavingName(hWnd, szZoneFileName, ARRAYSIZE(szZoneFileName)))打破L_OcrPage_SaveZonesFile(ocrPage, szZoneFileName, 1, NULL);打破//保留其余的代码

创建两个新函数,命名为gettzonesavingname (HWND HWND, TCHAR* pszFileName, DWORD nLen)而且gettzoneloadingname (HWND HWND, TCHAR* pszFileName, DWORD nLen),并把它们放在指向函数。添加下面的代码以获取用于加载和保存OCR区域的有效区域文件名。

L_INT GetZoneSavingName(HWND HWND, tsar * pszFileName, DWORD nLen)OPENFILENAME OPENFILENAME = {0};OpenFileName。lStructSize =运算符(OPENFILENAME);OpenFileName。hwndOwner = hwnd;OpenFileName。lpstrFilter = TEXT("分区文件(*.ozf)\0*.ozf\0All\0*.*\0");OpenFileName。lpstrFile = pszFileName;OpenFileName。nMaxFile = nLen;OpenFileName。lpstrFileTitle = NULL;OpenFileName。lpstrDefExt = TEXT(“ozf”);OpenFileName。nMaxFileTitle = 0;OpenFileName。lpstrInitialDir = NULL;OpenFileName。Flags = OFN_OVERWRITEPROMPT;//显示文件保存对话框如果(! GetSaveFileName (&OpenFileName))返回失败;返回成功;
L_INT GetZoneLoadingName(HWND HWND, TCHAR* pszFileName, DWORD nLen)OPENFILENAME OPENFILENAME = {0};OpenFileName。lStructSize =运算符(OpenFileName);OpenFileName。hwndOwner = hwnd;OpenFileName。lpstrFile = pszFileName;OpenFileName。nMaxFile = nLen;OpenFileName。lpstrFilter = TEXT("分区文件(*.ozf)\0*.ozf\0All\0*.*\0");OpenFileName。nFilterIndex = 1;OpenFileName。lpstrFileTitle = NULL;OpenFileName。nMaxFileTitle = 0;OpenFileName。lpstrInitialDir = NULL;OpenFileName。Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;//显示File Open对话框如果(! GetOpenFileName (&OpenFileName))返回失败;返回成功;

运行项目

按下运行项目F5,或选择Debug ->开始调试

如果正确地执行了这些步骤,应用程序将运行。按照下面的说明进行测试。

  1. 点击File ->打开,然后选择要在查看器中加载的图像。

  2. 点击区域->显示区域,以油漆区聚集而成L_OcrPage_AutoZone(ocrPage, NULL, NULL);函数,或从加载OZF文件。

  3. 点击区域->负载区域,然后选择包含你要载入的OCR区域的OZF文件。

  4. 点击区域->保存区域,将当前的OCR区域保存到OZF文件中。

    窗口显示的屏幕截图,显示图像和区域。

总结

本教程演示如何加载和保存OCR区域,以及如何在屏幕上显示它们的位置。我们还介绍了如何使用L_OcrPage而且L_OcrZone结构体。

另请参阅

net
iOS
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2022领德科技有限公司版权所有。