c#下halcon配置

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 FilesMVTec中。
我就把C:Program FilesMVTecHalconin目录复制到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 FilesMVTecHalcon下增加本台机器安装的HDevelop的help目录。


比如:我的机器C:Program FilesMVTecHALCON-10.0help
我在还有一台机器下也按着这个路径建立同样目录的名字,把我的机器C:Program FilesMVTecHALCON-10.0help下的所以文件复制到还有一台机器中。

11.配置完毕。执行。。。。

原文地址:https://www.cnblogs.com/yjbjingcha/p/7091412.html