本教程展示了如何创建一个c# Windows WinForms应用程序使用LEADTOOLS SDK来执行通过显微镜检测和识别。
概述 | |
---|---|
总结 | 本教程介绍了如何使用LEADTOOLS显微镜c# Windows SDK技术WinForms应用程序。 |
完成时间 | 30分钟 |
Visual Studio项目 | 下载教程项目(4 KB) |
平台 | c# Windows WinForms应用程序 |
IDE | Visual Studio 2022 |
开发许可 | 下载LEADTOOLS |
试试用另一种语言 |
|
熟悉基本的步骤创建一个项目的审查添加引用和设置一个许可证和显示图像的图像查看器教程,在工作之前检测和提取通过显微镜——WinForms c#教程。
从项目中创建的副本显示图像的图像查看器教程。如果项目不可用,按照这个教程中的步骤创建它。
的引用需要取决于项目的目的。引用可以通过添加一个或另一个下面的两种方法(但不是全部)。对于这个项目,还需要以下引用:
如果使用NuGet引用,本教程需要以下NuGet包:
Leadtools.Document.Sdk
Leadtools.Viewer.Controls.WinForms
如果使用本地DLL的引用,下面的DLL是必要的。dll位于< INSTALL_DIR > \ LEADTOOLS22 \ Bin \净
:
Leadtools.dll
Leadtools.Codecs.dll
Leadtools.Codecs.Cmp.dll
Leadtools.Codecs.Fax.dll
Leadtools.Codecs.Tif.dll
Leadtools.Controls.WinForms.dll
Leadtools.Document.Writer.dll
Leadtools.Forms.Commands.dll
Leadtools.ImageProcessing.Core.dll
Leadtools.Ocr.dll
Leadtools.Ocr.LEADEngine.dll
对于一个完整的列表的编解码器dll需要特定的格式,请参考文件格式的支持。
许可解锁项目需要的特性。它必须设置工具箱函数被调用之前。细节包括教程不同的平台,请参考设置一个运行时许可。
有两种类型的运行时许可证:
请注意
添加LEADTOOLS NuGet和本地引用设置许可中会详细介绍添加引用和设置一个许可证教程。
与项目创建、引用添加许可,imageview初始化,加载图片代码添加编码就可以开始了。
在解决方案资源管理器,打开Form1.cs
弹出设计师。添加一个新的下拉菜单标题通过显微镜检测识别。现在两个菜单项添加到新的下拉菜单标题通过显微镜检测代码和&CMC7代码检测。新项目的名称deskewToolStripMenuItem
和rotateToolStripMenuItem
。
双击通过显微镜检测代码菜单项来创建它的点击事件处理程序。
确保你使用以下语句使用块顶部。
使用系统;
使用System.Drawing;
使用先;
使用包含;
使用System.Windows.Forms;
使用Leadtools;
使用Leadtools.Codecs;
使用Leadtools.Controls;
使用Leadtools.Ocr;
使用Leadtools.Document.Writer;
使用Leadtools.Forms.Commands;
使用Leadtools.ImageProcessing.Core;
添加下面的全局变量:
私人IOcrEngine _ocrEngine;
私人IOcrPage _ocrPage;
将以下代码行添加到Form1_Load初始化并启动事件IOcrEngine。创建Form1_Load事件的覆盖显示图像的图像查看器教程。
/ /初始化OCR引擎
_ocrEngine = OcrEngineManager.CreateEngine (OcrEngineType.LEAD);
/ /启动引擎
_ocrEngine.Startup (零,零,零,@“C: \ LEADTOOLS22 \ Bin \常见\ OcrLEADRuntime”);
添加以下行代码的底部openToolStripMenuItem_Click
创建一个事件处理程序IOcrPage加载图像的实例。创建openToolStripMenuItem_Click事件的覆盖显示图像的图像查看器教程。
/ /创建IOcrPage加载图像
_ocrPage = _ocrEngine.CreatePage (_view。形象,OcrImageSharingMode.AutoDispose);
将以下代码添加到mICRCodeDetectionToolStripMenuItem_Click
事件处理程序运行E13B显微镜检验加载图像和提取。
私人无效mICRCodeDetectionToolStripMenuItem_Click (对象发送方的EventArgs e)
{
试一试
{
如果(_ocrPage ! =零)
{
StringBuilder某人=新StringBuilder ();
BankCheckReader micrReader =新BankCheckReader ();
micrReader。OcrEngine = _ocrEngine;
/ /通过显微镜检测代码搜索E13b小字体类型
MICRCodeDetectionCommand e13bCmd =新MICRCodeDetectionCommand
{
SearchingZone =新LeadRect (0, 0, _ocrPage.GetRasterImage ()。宽度,_ocrPage.GetRasterImage () .Height)
};
e13bCmd.Run (_ocrPage.GetRasterImage ());
/ /如果E13b通过显微镜发现的代码
如果(e13bCmd。MICRZone ! = LeadRect.Empty)
{
micrReader。MicrFontType = BankCheckMicrFontType.E13b;
micrReader.ProcessImage (_ocrPage.GetRasterImage ());
图g = _viewer.CreateGraphics ();
foreach(var价值在micrReader.Results)
{
如果(价值。关键! =“签名”)
{
sb.Append (“\ n”);
sb.Append ($“字段名:{value.Key} \ n”);
sb.Append ($“字段值:{value.Value.Text} \ n”);
/ /图像边界坐标转换成控制
LeadRect micrLeadRect = _viewer.ConvertRect (_view。ActiveItem ImageViewerCoordinateType。形象,ImageViewerCoordinateType。控制,value.Value.Bounds);
/ /画蓝色矩形每个字段的查看器
g.DrawRectangle (新笔(Color.Blue) micrLeadRect。X, micrLeadRect。Y, micrLeadRect。宽度,micrLeadRect.Height);
}
}
MessageBox.Show (sb.ToString ());
/ /重新油漆的查看器去除矩形
_viewer.Refresh ();
}
其他的
MessageBox.Show (“没有小代码检测”);
}
其他的
MessageBox.Show (“加载图像第一”);
}
抓(异常交货)
{
MessageBox.Show (ex.ToString ());
}
}
导航回的设计师解决方案资源管理器。双击&CMC7代码检测菜单项,并将以下代码添加到cMC7CodeDetectionToolStripMenuItem_Click
事件处理程序:
私人无效cMC7CodeDetectionToolStripMenuItem_Click (对象发送方的EventArgs e)
{
试一试
{
如果(_ocrPage ! =零)
{
StringBuilder某人=新StringBuilder ();
BankCheckReader micrReader =新BankCheckReader ();
micrReader。OcrEngine = _ocrEngine;
/ /运行CMC7检测
CMC7CodeDetectionCommand cmc7Cmd =新CMC7CodeDetectionCommand ();
cmc7Cmd.Run (_ocrPage.GetRasterImage ());
如果(cmc7Cmd。CMC7Zone ! = LeadRect.Empty)
{
micrReader。MicrFontType = BankCheckMicrFontType.Cmc7;
micrReader.ProcessImage (_ocrPage.GetRasterImage ());
图g = _viewer.CreateGraphics ();
foreach(var价值在micrReader.Results)
{
如果(价值。关键! =“签名”)
{
sb.Append (“\ n”);
sb.Append ($“字段名:{value.Key} \ n”);
sb.Append ($“字段值:{value.Value.Text} \ n”);
/ /图像边界坐标转换成控制
LeadRect micrLeadRect = _viewer.ConvertRect (_view。ActiveItem ImageViewerCoordinateType。形象,ImageViewerCoordinateType。控制,value.Value.Bounds);
/ /画蓝色矩形每个字段的查看器
g.DrawRectangle (新笔(Color.Blue) micrLeadRect。X, micrLeadRect。Y, micrLeadRect。宽度,micrLeadRect.Height);
}
}
MessageBox.Show (sb.ToString ());
/ /重新油漆的查看器去除矩形
_viewer.Refresh ();
}
其他的
MessageBox.Show (“没有CMC7代码检测”);
}
其他的
MessageBox.Show (“加载图像第一”);
}
抓(异常交货)
{
MessageBox.Show (ex.ToString ());
}
}
按运行项目F5,或通过选择调试- >开始调试。
如果是正确的步骤,应用程序能够通过显微镜和CMC7代码运行检测加载图像并显示检查图像的小信息。这可以使用BANKCHECK.JPG
和CMC7.JPG
样本:C: \ LEADTOOLS22 \ \图片资源
本教程演示了如何使用IOcrEngine
接口,MICRCodeDetectionCommand
类,BankCheckReader
类。