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.配置完毕。执行。。。。
。
请发表评论