1、新建halcon程序,读取图像并二值化图像。选择菜单栏中的【文件】→【读取图像】,选择图像打开。
2、图像二值化之前,需要对图像进行灰度化处理,写入程序“rgb1_to_gray (Image, GrayImage)”,运行程序。选择【打开灰度直方图】,弹出“灰度直方图”界面。选择【范围筛选及代码生成】→【阈值】,移动阈值线至合适的位置,选择【插入代码】,关闭窗口。
3、显示图片,插入代码“dev_display (Regions)”,并执行。
4、生成C#程序。选择菜单栏【文件】→【导出】,弹出导出界面,选择导出文件类型“C#”,确定。
5、双击打开生成的C#文件,action函数中额内容即为halcon中实现的。
6、新建项目。选择【文件】→【项目】,弹出“新建项目”界面
7、选择【其它语言】→【visual C#】→【windows 窗体应用】,修改文件保存名称,确定。
8、选择CPU类型。选择菜单栏中的【项目】→【属性】,弹出配置界面,选择【生成】,CPU类型根据自己的电脑类型选择。
9、回到之前的界面form1.cs,开始进行c#配置工作。
第一步,添加引用。在解决方案资源管理器中选择【引用】,单击右键,选择【添加引用】,在halcon安装目录,bin文件夹下找到“halcondotnet.dll”文件,选择【添加】。
10、打开halcon生成的c#程序。选择菜单栏中的【文件】→【打开】→【文件】,打开文件。
11、加入命名空间。在C#中,我们用的是格式是“using”,在halcon生成的程序中可以看到“using HalconDotNet”,选择并复制。打开“form.cs”程序,粘贴复制的程序。
12、添加命名空间完成后,选择菜单栏中的【生成】→【重新生成解决方案】
13、打开工具箱。选择菜单栏中的【视图】→【工具箱】。
14、选择工具箱中公共控件下的某一个控件,单击右键,选择【选择项】,弹出“选择工具箱项“界面。选择【.NET Framewok组件】→【浏览】→【halcondotnet.dll】→【打开】
15、工具箱中多出两个halcon控件
16、分别选中工具箱中的【button】和【HWindowControl】控件,并拖拽至form1界面上,如下图
17、在form1界面上空白处单击右键,选择【属性】,在text中输入“显示图片“;选中button1,单击右键选择属性,在text中输入”采集图片“;同理分别修改button2和button3的名称为“处理图片“和”显示图片“。
18、再次运行“重新生成解决方案“,查看是否有问题。
19、双击“采集图片”,添加事件。原程序代码如下图:
20、添加变量。打开halcon生成的程序,复制变量程序。打来“form1.cs”程序,粘贴程序。
21、添加openfiledialog控件。在之前halcon程序的设计中,我们是直接读取一个固定的图片,此处,我们换另一种方式,可以去查找并选择图片。选择【工具箱】→【对话框】→【openfiledialog】,拖拽至适当位置。
22、添加调用openfiledialog的函数。打开“form1.cs”,添加下列程序:
OpenFileDialog控件的基本属性
InitialDirectory:对话框的初始目录
Filter: 获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
FileName:第一个在对话框中显示的文件或最后一个选取的文件
Title 将显示在对话框标题栏中的字符
DereferenceLinks 在从对话框返回前是否取消引用快捷方式
ShowHelp 启用"帮助"按钮
ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列
23、添加“采集图像”的halcon生成程序。
24、添加“处理并显示图像”的halcon的图像灰度化和二值化处理生成程序。
25、添加“处理并显示图像”的halcon的图像生成程序。
此处需要注意,必须首先打开窗口,打开的窗口需嵌在前面显示的框里,打开窗口的函数在halcon软件中输入“dev_open_window(0, 0, 512, 512, ‘black’, WindowHandle)”,重新生成C#程序。
HOperatorSet.OpenWindow(0, 0, 512, 512, 0, "visible", "", out hv_WindowHandle);
为了完成嵌入,需要将第三个参数512和第四个参数512分别改成前面显示框的位置,第五个参数改成前面框的句柄,如下所示:
26、添加“处理并显示图像”的halcon的图像显示生成程序。