1.在halcon中写入算子,实现函数过程
比如:
- read_image(Image,’D:/MyFile/halcon/数字识别/1.jpg’)
- decompose3(Image, ImageR, ImageG, ImageB)
- threshold (ImageG, Regions, 0, 183)
- connection (Regions, Connection)
- select_shape (Connection, SelectedRegions, ‘area’, ‘and’, 1987.72, 7500)
- read_ocr_class_mlp(‘Document_0-9.omc’,OCRHandle)
- do_ocr_multi_class_mlp(SelectedRegions,ImageG,OCRHandle, Class, Confidence)
复制代码 2.通过halcon的IDE开发环境,导出C#代码 3.利用vs2013创建一个C#窗体程序,加一个button。 4.将HDevelop安装目录下的目录复制到刚创建的C#窗体程序目录下
比方:我的C#project名字叫Hello,我的HDevelop安装在C:\Program Files\MVTec中。
我就把C:\Program Files\MVTec\Halcon\bin目录复制到Hello.sln所在位置的同一目录下。 5.在C#project中,对“解决方式资源管理器” 的 “引用” 右击,选择 “增加引用” 。点击“浏览”,选择刚才加进C#project的 “bin” 目录,接着选择“dotnet35”目录。最后选择“halcondotnet.dll”文件。点击”增加“。
6.在C#project中,选择“视图”。选择“工具箱”,在“工具箱“中右击,选择”选择项“,点击”浏览“。选择刚才加进C#project的 “bin” 目录,接着选择“dotnet35”目录。最后选择“halcondotnet.dll”文件。 点击”打开“。 7.将第二步导出的c#代码中生成的类,增加”Program.cs“文件里,例如以下
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using HalconDotNet;
- namespace Hello
- {
- public partial class HDevelopExport
- {
- public HDevelopExport() { // Default settings used in HDevelop HOperatorSet.SetSystem("do_low_error", "false"); action(); } // Main procedure public void action() { // Local iconic variables HObject ho_Image; // Local control variables HTuple hv_Width, hv_Height, hv_WindowHandle; // Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_Image); if (HDevWindowStack.IsOpen()) { HOperatorSet.CloseWindow(HDevWindowStack.Pop()); } HOperatorSet.ReadImage(out ho_Image, "1.jpg"); HOperatorSet.GetImageSize(ho_Image, out hv_Width, out hv_Height); HOperatorSet.SetWindowAttr("background_color", "black"); HOperatorSet.OpenWindow(0, 0, hv_Width, hv_Height, 0, "", "", out hv_WindowHandle); HDevWindowStack.Push(hv_WindowHandle); if (HDevWindowStack.IsOpen()) { HOperatorSet.DispObj(ho_Image, HDevWindowStack.GetActive()); } ho_Image.Dispose(); }}static class Program{ /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); }}
- }
复制代码
8.在C#project的”Form1.cs“文件,button响应事件中增加代码。例如以下:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Hello
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e) { HDevelopExport HD = new HDevelopExport(); HD.action(); }}
- }
复制代码
9.在C#project”Debug“目录中增加”halcon.dll“、”halcondotnet.dll“、”license.dat“文件。
10.移植到还有一台机器中的时候,要在还有一台机器路径C:\Program Files\MVTec\Halcon\下增加本台机器安装的HDevelop的help目录。
比如:我的机器C:\Program Files\MVTec\HALCON-10.0\help
我在还有一台机器下也按着这个路径建立同样目录的名字,把我的机器C:\Program Files\MVTec\HALCON-10.0\help下的所以文件复制到还有一台机器中。
11.配置完毕。执行。。。。
|