C#+Halcon调用笔记本相机实现采集图像

第一步,在Halcon中导出代码

C#联合Halcon做一些简单的项目,通常这么一个流程:取像-Halcon处理-导出C#函数代码(C++函数代码)-将导出的函数中有用的一部分提取到自己的界面代码-将需要调节的参数开放到界面层

halcon调用笔记本相机

  1. 在Halcon中打开取像助手C#+Halcon调用笔记本相机实现采集图像_第1张图片
  2. 取像助手设置:自动检测接口-连接-实时-代码插入C#+Halcon调用笔记本相机实现采集图像_第2张图片
  3. 插入代码后,得到如下C#+Halcon调用笔记本相机实现采集图像_第3张图片
    可以先F5运行,确认在实时显示。
  4. 导出函数:文件–导出–C#–导出C#+Halcon调用笔记本相机实现采集图像_第4张图片

第二步,在导出函数中,复制自己需要的代码

首先自己创建一个winform程序

C#+Halcon调用笔记本相机实现采集图像_第5张图片

打开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

你可能感兴趣的:(C#,Halcon,工业视觉,c#,计算机视觉)