C#学习笔记-调用HALCON代码

测试环境:
软件 - 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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值