Halcon与C#联合编程(二)
在上篇博客中写了一点点基础的C#与Halcon联合编程的历程代码,很多东西都未详细讲解和介绍,本文将针对自己刚学时遇到的一些问题点,网上介绍较少的一些知识进行讲解。
一、如何在C#中的halcon窗口进行交互。
halcon中的图形窗口是通过 hWindowControl.HalconWindow 在C#中进行的图像的显示,但是其交互并不能像halcon中那么自如,尤其一些常用的功能,比如通过滚轮放大缩小,拖动图像,在控件上画多个ROI区域等。下面将使用一种其他的接口(非本人所写,在ihalcon.com论坛中获取的开源资源),但依旧是halcon图像接口,实现上述基本功能。接口已封装为dll,下载网址如下:
http://download.youkuaiyun.com/download/qizijuesha/9940985
首先引用该dll,资源管理器右键添加引用,然后将该dll添加到选项卡中(即左侧的工具箱中),在界面编辑器下点击左侧工具箱,下拉到最后有一个常规选项卡,右键空白处->选择项,找到刚才下载的dll,双击添加,会发现选项卡中多了一个工具,该工具即为要显示图像窗口的控件,然后将该控件拖至Form界面。该控件句柄通常为 hWindow_Final。
自己写代码的习惯性定义,先在类中生命句柄
private HTuple hv_WindowHandle
窗口初始化时同时将该句柄初始化
hv_WindowHandle = hWindow_Final.HWindowHalconID;
从本地或者相机直接获取图片,然后就可以通过该控件进行显示
hWindow_Final2.ClearWindow();
hWindow_Final2.HobjectToHimage(Ocr_image);
显示之后在控件点击右键,会出现右键菜单栏,可以保存图片,自适应窗口等,也可直接保存窗口图,可实时显示图像的坐标与灰度值。
若要在窗口中显示多个ROI,可以在窗口显示图片后,不做清除操作,每画出一个ROI,再roi显示在窗口上即可