目录
概述:
在工业自动化设备上,图像识别部分一般是设备的一个模块,需要和其它模块协同工作。因此图像识别处理的程序要和其它控制程序联动运行,开发windows客户端软件即可实现该功能。Halcon编译器提供程序导出功能,导出的程序有C、C++、C#等格式。
1、Halcon程序导出。
(1)打开图片并进行灰度处理。
*读取图片-pic1.jpg
read_image (Image, 'C:\\Users\\Administrator\\Desktop\\halcon_VS\\pic1.jpg')
*将打开的图片灰度化处理
rgb1_to_gray (Image, GrayImage)
(2)导出。
菜单栏:文件->导出。按图所示设置。程序导出类型为C#
(3)查看导出的程序。
找到导出的程序文件,使用VS2013打开,即可看到导出的C#代码。
2、C#工程中配置
(1)创建C#程序。
打开VS,新建一个C# winform程序。
(2)添加控件。
在工具箱中添加halcon的控件。工具箱->常规(鼠标右击)->选择项->.NET Framework组件->浏览(找到dll文件)->确定。
控件添加成功后,即可将控件HWindowControl控件拖到winform界面Form1上面。
此时F5运行程序,会报错。
(3)添加引用、工程配置
程序工程中添加halcondotnet.dll文件。F5运行程序,还是会报错。
Halcon提供的DLL文件是.NET3.5版本的,而C#程序是.NET4.5的,因此把C#程序也改成.NET3.5。
重新编译运行,还是报错。
将.NET框架改成.NET4.0,即可成功运行。
(4)C#中执行halcon导出的程序。
在界面中添加两个hWindowControl控件,添加一个button按钮取名图像处理。添加图像处理按钮程序。
用VS打开Halcon导出的程序。将截图中的代码复制到图像处理按钮程序中。
删除、整理代码。
将读取的图片、灰度化处理的图片分别控件在hWindowControl1、hWindowControl2中显示。
完整的代码:
private void button1_Click(object sender, EventArgs e)
{
HObject ho_Image, ho_GrayImage;
HOperatorSet.GenEmptyObj(out ho_Image);
HOperatorSet.GenEmptyObj(out ho_GrayImage);
//读取图片-pic1.jpg
HOperatorSet.ReadImage(out ho_Image, "C:\\Users\\Administrator\\Desktop\\halcon_VS\\pic1.jpg");
//将打开的图片灰度化处理
HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);
//显示图片
hWindowControl1.HalconWindow.DispObj(ho_Image);
hWindowControl2.HalconWindow.DispObj(ho_GrayImage);
ho_Image.Dispose();
ho_GrayImage.Dispose();
}
最终运行的效果
完整的工程下载链接:https://download.csdn.net/download/panjinliang066333/14032809