C#与Halcon联合编程

1、新建halcon程序,读取图像并二值化图像。选择菜单栏中的【文件】→【读取图像】,选择图像打开。

C#与Halcon联合编程_第1张图片

2、图像二值化之前,需要对图像进行灰度化处理,写入程序“rgb1_to_gray (Image, GrayImage)”,运行程序。选择【打开灰度直方图】,弹出“灰度直方图”界面。选择【范围筛选及代码生成】→【阈值】,移动阈值线至合适的位置,选择【插入代码】,关闭窗口。

C#与Halcon联合编程_第2张图片

3、显示图片,插入代码“dev_display (Regions)”,并执行。

4、生成C#程序。选择菜单栏【文件】→【导出】,弹出导出界面,选择导出文件类型“C#”,确定。

C#与Halcon联合编程_第3张图片

5、双击打开生成的C#文件,action函数中额内容即为halcon中实现的。

C#与Halcon联合编程_第4张图片

6、新建项目。选择【文件】→【项目】,弹出“新建项目”界面

C#与Halcon联合编程_第5张图片

7、选择【其它语言】→【visual C#】→【windows 窗体应用】,修改文件保存名称,确定。

C#与Halcon联合编程_第6张图片

 

8、选择CPU类型。选择菜单栏中的【项目】→【属性】,弹出配置界面,选择【生成】,CPU类型根据自己的电脑类型选择。

C#与Halcon联合编程_第7张图片

9、回到之前的界面form1.cs,开始进行c#配置工作。

第一步,添加引用。在解决方案资源管理器中选择【引用】,单击右键,选择【添加引用】,在halcon安装目录,bin文件夹下找到“halcondotnet.dll”文件,选择【添加】。

C#与Halcon联合编程_第8张图片

10、打开halcon生成的c#程序。选择菜单栏中的【文件】→【打开】→【文件】,打开文件。

C#与Halcon联合编程_第9张图片

11、加入命名空间。在C#中,我们用的是格式是“using”,在halcon生成的程序中可以看到“using HalconDotNet”,选择并复制。打开“form.cs”程序,粘贴复制的程序。

C#与Halcon联合编程_第10张图片

12、添加命名空间完成后,选择菜单栏中的【生成】→【重新生成解决方案】

C#与Halcon联合编程_第11张图片

13、打开工具箱。选择菜单栏中的【视图】→【工具箱】。

C#与Halcon联合编程_第12张图片

14、选择工具箱中公共控件下的某一个控件,单击右键,选择【选择项】,弹出“选择工具箱项“界面。选择【.NET Framewok组件】→【浏览】→【halcondotnet.dll】→【打开】

C#与Halcon联合编程_第13张图片

15、工具箱中多出两个halcon控件

16、分别选中工具箱中的【button】和【HWindowControl】控件,并拖拽至form1界面上,如下图

C#与Halcon联合编程_第14张图片

17、在form1界面上空白处单击右键,选择【属性】,在text中输入“显示图片“;选中button1,单击右键选择属性,在text中输入”采集图片“;同理分别修改button2和button3的名称为“处理图片“和”显示图片“。

C#与Halcon联合编程_第15张图片

 

C#与Halcon联合编程_第16张图片

18、再次运行“重新生成解决方案“,查看是否有问题。

19、双击“采集图片”,添加事件。原程序代码如下图:

C#与Halcon联合编程_第17张图片

20、添加变量。打开halcon生成的程序,复制变量程序。打来“form1.cs”程序,粘贴程序。

C#与Halcon联合编程_第18张图片

21、添加openfiledialog控件。在之前halcon程序的设计中,我们是直接读取一个固定的图片,此处,我们换另一种方式,可以去查找并选择图片。选择【工具箱】→【对话框】→【openfiledialog】,拖拽至适当位置。

C#与Halcon联合编程_第19张图片

22、添加调用openfiledialog的函数。打开“form1.cs”,添加下列程序:

C#与Halcon联合编程_第20张图片

C#与Halcon联合编程_第21张图片

OpenFileDialog控件的基本属性

InitialDirectory:对话框的初始目录

Filter 获取或设置当前文件名筛选器字符串,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"

FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1

RestoreDirectory 控制对话框在关闭之前是否恢复当前目录

FileName:第一个在对话框中显示的文件或最后一个选取的文件

Title 将显示在对话框标题栏中的字符

DereferenceLinks 在从对话框返回前是否取消引用快捷方式

ShowHelp 启用"帮助"按钮

ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列

23、添加“采集图像”的halcon生成程序。

C#与Halcon联合编程_第22张图片

24、添加“处理并显示图像”的halcon的图像灰度化和二值化处理生成程序。

C#与Halcon联合编程_第23张图片

25、添加“处理并显示图像”的halcon的图像生成程序。

C#与Halcon联合编程_第24张图片

此处需要注意,必须首先打开窗口,打开的窗口需嵌在前面显示的框里,打开窗口的函数在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的图像显示生成程序。

C#与Halcon联合编程_第25张图片

 

C#与Halcon联合编程_第26张图片

你可能感兴趣的:(C#)