halcon联合C#实现实时显示

下面我们开始进行halcon联合C#进行编程,开发出应用程序,举例实现在C#中打开相机,显示图片。(在我的资源里面有源码下载)

1.打开Visual Studio 2010,如下图

新建一个windows窗体应用程序,选择好项目保存位置。

2.设置环境与halcon对接上 在引用处添加目录,如图

选择该目录下halcondotnet.dll,并确定。

在应用下就会多一个halcondotnet的项。

注意需要清楚你安装的halcon是32位还是64位,在创建C#工程的使用需要改成和halcon一样,所以我这里使用64位的平台开发

3.为了在C#界面里面显示图片,我们在C#窗口里面放一个pictureBox显示图片控件,并修改一下名字。


在加载函数中添加打开窗口的代码,如下图

在添加代码之前先添加使用halcon的命名空间:using HalconDotNet;

在函数中添加打开窗口的代码

 

定义窗口句柄ID   

HTuple hv_WindowId;

和在函数中添加代码

HOperatorSet.OpenWindow(0, 0, pictureBoxShow.Width, pictureBoxShow.Height, pictureBoxShow.Handle, "", "",out hv_WindowId);

编译运行一下,可能会报错:

这是没有找到halcon.dll。我们在halcon的安装目录

C:\Program Files\MVTec\HALCON-12.0\bin\x64-win64下面可以找到halcon.dll,并将它拷贝到项目工程的运行目录下面。

 

继续编译运行就会出现黑色的显示窗口。若没有报错则不需要。

 

至此VC#与halcon联合编程的环境就设置OK了。

 

在初始化打开相机,并采图显示

1)使用halcon的采集助手打开相机,并生成代码,这里我打开的是我的电脑的摄像头。

导出C#

打开GrebCam.cs,找到action函数

拷贝打开相机的代码到初始化位置,定义相机句柄为全局

单步调试打开相机

可能会出错,这是使用DLL没有找到,将hAcqDirectShow.dll,拷贝到运行目录下即可。

注意若还遇到下面的错误,我将项目目录换到没有中文的目录的下就好了。

 

得到运行的效果:

6.添加采图显示代码

定义图像变量和图像的尺寸变量

 

添加采图代码

执行结果:

说明打开相机,并采图成功。

 

开线程进行实时采图 在界面上添加一个按钮作为实时采集

添加消息响应函数和代码,定义一个全局变量,用来标记是否为实时采图状态,开线程进行循环采图。

开线程需要先添加命名空间:

定义全局变量:

在消息响应函数中添加开启关闭线程。

定义实时采图的线程函数:

 

运行结果

点击实时

 

 

 

 

猜你喜欢

转载自blog.csdn.net/JamesCoding/article/details/83956365