第一步,在Halcon中导出代码
C#联合Halcon做一些简单的项目,通常这么一个流程:取像-Halcon处理-导出C#函数代码(C++函数代码)-将导出的函数中有用的一部分提取到自己的界面代码-将需要调节的参数开放到界面层
halcon调用笔记本相机
- 在Halcon中打开取像助手
- 取像助手设置:自动检测接口-连接-实时-代码插入
- 插入代码后,得到如下
可以先F5运行,确认在实时显示。 - 导出函数:文件–导出–C#–导出
第二步,在导出函数中,复制自己需要的代码
首先自己创建一个winform程序
打开Halcon导出的函数
找到action函数,推荐新手可以先将整个action函数coppy到自己的程序里,根据需要将里面内容添加到自己的函数中。
private void action()
{
// Local iconic variables
HObject ho_Image=null;
// Local control variables
HTuple hv_AcqHandle = new HTuple();
// Initialize local and output iconic variables
HOperatorSet.GenEmptyObj(out ho_Image);
//Image Acquisition 01: Code generated by Image Acquisition 01
hv_AcqHandle.Dispose();
HOperatorSet.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, "rgb",
-1, "false", "default", "[0] Integrated Webcam", 0, -1, out hv_AcqHandle);
HOperatorSet.GrabImageStart(hv_AcqHandle, -1);
while ((int)(1) != 0)
{
ho_Image.Dispose();
HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);
//Image Acquisition 01: Do something
}
HOperatorSet.CloseFramegrabber(hv_AcqHandle);
ho_Image.Dispose();
hv_AcqHandle.Dispose();
}
根据实际情况,将代码放入自己的函数中
Task task = new Task(() =>
{
while (IsStart)
{
ho_Image.Dispose();
HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);
HOperatorSet.DispObj(ho_Image, hWindowControl1.HalconWindow);
}
});
task.Start();
这里实时采集需要放到线程中。
链接: [源码连接](https://download.csdn.net/download/qq_42721029/12437816).
https://download.csdn.net/download/qq_42721029/12437816