目录
1. C#配置halcon运行环境
2.导出halcon算法库
3.使用方法
记录下C#配置halcon环境的方法,以及halcon导出库的使用方法。
1. C#配置halcon运行环境
VS版本: vs2019
halcon版本: 20.11
创建c#工程,点击“创建新项目”,在搜索窗口中输入“.Net”,选择"Windows 窗口应用(.NET。Framework)
输入项目名称,保存路径,.NET framework框架
修改目标平台配置,右键项目名称->属性
把取消 勾选32位
右键项目名,生成Debug文件
将halcon目录下的3个dll,如下图
复制到Debug路径下
添加库halcondotnet.dll,路径位于Debug目录
点击浏览
选中halcondotnet.dll,点击添加
勾选halcondotnet.dll,点击确定
找到右方工具箱,下方随便找个位置右键->选择项
点击浏览,加载halcon库文件
点击确定后,完成2个窗口控件的添加
拖动 HWindowControl控件到中间主界面上,同时添加一个button按键
按F5测试生成执行文件是否成功。
2.导出halcon算法库
只有halcon18.11以上版本才支持导出C#的库文件,halcon17.12只支持C++
比如我们随便写一段测试代码,将处理部分封装成本地函数。
导出库工程
导出界面选择C#
导出文件:
res_My_Test目录下存放的hdev文件
source目录下存放的c#文件
3.使用方法
把res_My_Test放入Debug目录下
source中的My_Test.cs文件直接拖到工程中
报错信息,需要添加engine的dll
右键引用,添加
其他需要添加的dll
以上配置都OK后,我们开始使用库的方法:
在代码内部,调用Debug目录下的halcon文件,我在使用,或者需要修改代码时,直接对halcon代码修改,不用再次导出c#文件。
C#控件button下的代码:
private void button1_Click(object sender, EventArgs e){HTuple area = new HTuple();HTuple row = new HTuple();HTuple column = new HTuple();string image_path = "printer_chip_01.png";HImage img = new HImage();img.ReadImage(image_path);int width, height;img.GetImageSize(out width, out height);// Console.WriteLine("图像宽度: " + width + ", 高度: " + height);hWindowControl1.HalconWindow.SetPart(0, 0, height - 1, width - 1);hWindowControl1.HalconWindow.DispObj(img);MYTEST.My_Test.process_img(img, out area, out row, out column);hWindowControl1.HalconWindow.SetColor("red");hWindowControl1.HalconWindow.SetLineWidth(3); HXLDCont hxld = new HXLDCont();hxld.GenCrossContourXld(row.D, column.D, 156.0, 0.785398);hxld.DispObj(hWindowControl1.HalconWindow);}
先看看当前运行效果,在最大面积的目标上显示十字叉。
halcon中的代码:
下面我们之间修改F:\code_test\halcon_test\bin\Debug\res_My_Test目录下的test_file1.hdev文件
修改处理算法,添加排序:
运行C#工程效果:
总结:
通过导出库的方法,直接在halcon源码上修改,不用再次导出c#代码集成。