测试环境:
软件 - HALCON12.0汉化版
软件 - Visual Studio 2015
相机 - 笔记本自带摄像头
1,启动HALCON,选择助手,选择Image Acquisition,点击自动检测接口,点击代码生成,生成Halcon代码。
************************************************
2,将Halcon代码导出成C#文件(例子:HalconTest.cs)
************************************************
************************************************
************************************************
3,创建C# Winform工程,添加现有项,将HalconTest.cs添加进入工程
************************************************
4,添加引用,将halcondotnet.dll添加进入工程
5,打开工具箱,右击选择, 选择项
************************************************
6,点击浏览,选择库文件halcondotnet.dll,添加halcondotnet.dll的HWindowControl添加进入工具箱
************************************************
************************************************
************************************************
7,制作界面
************************************************
8,引用命名空间,添加按钮点击事件
using HalconDotNet;
//...........
HDevelopExport HA;
public Form1()
{
InitializeComponent();
HA = new HDevelopExport();
HA.InitHalcon();
}
//连续取像按钮点击事件
private void btnCapture_Click(object sender, EventArgs e)
{
HA.RunHalcon(this.hWindowControl1.HalconWindow);//HWindow
}
9,修改HalconTest.cs中的action方法,增加语句 HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle),将图片显示出来
private void action()
{
//.................................
while ((int)(1) != 0)
{
ho_Image.Dispose();
HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);
HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);//增加显示语句
//Image Acquisition 01: Do something
}
}
10,主界面会卡住,修改HalconTest.cs中的RunHalcon方法,将action的调用添加在后台线程中
public void RunHalcon(HTuple Window)
{
hv_ExpDefaultWinHandle = Window;
//****将action调用放入后台线程中
System.Threading.Thread th = new System.Threading.Thread(() =>
{
action();
});
th.IsBackground = true;
th.Start();
}
备注:使用PictureBox显示,很多异常没有排除…….
private void btnCapture_Click(object sender, EventArgs e)
{
//HA.RunHalcon(this.hWindowControl1.HalconWindow);
HWindow hw = new HWindow();
hw.OpenWindow(0, 0, this.pictureBox1.Width, this.pictureBox1.Height, this.pictureBox1.Handle, "visible", "");
HA.RunHalcon(hw);
}