zoukankan      html  css  js  c++  java
  • Halcon相机硬触发采集图片

     1         public static void Start()
     2         {
     3             Thread thdGrab = new Thread(new ThreadStart(GrabImage));
     4             thdGrab.IsBackground = true;
     5             thdGrab.Start();
     6             Thread thdCal = new Thread(new ThreadStart(Process));
     7             thdCal.IsBackground = true;
     8             thdCal.Start();
     9         }
    10         private static void GrabImage()
    11         {
    12             HImage _imageA = new HImage();
    13             HImage _imageB = new HImage();
    14             HObject hv_objectA = null;
    15             HObject hv_objectB = null;
    16             HOperatorSet.GrabImageStart(hv_AcqHandle_A, -1);
    17             HOperatorSet.GrabImageStart(hv_AcqHandle_B, -1);
    18             //Run acquisition loop.
    19             while (cAuto.bStart)
    20             {
    21                 Thread.Sleep(10);
    22                 try
    23                 {
    24                     HOperatorSet.GrabImageAsync(out hv_objectA, hv_AcqHandle_A, -1.0);
    25                     HOperatorSet.GrabImageAsync(out hv_objectB, hv_AcqHandle_B, -1.0);
    26                     if (hv_objectA != null && hv_objectB != null)//采集OK
    27                     {
    28                         cAuto.UpdateGUI((int)cAuto.UpdateItem.Log_Info, "Camera_A,Camera_B grab image OK...");
    29                         HObjectToHImage(hv_objectA, ref _imageA);
    30                         HObjectToHImage(hv_objectB, ref _imageB);
    31                         hv_objectA = null;
    32                         hv_objectB = null;
    33                         List<HImage> lstImgs = new List<HImage>();
    34                         lstImgs.Add(_imageA.Clone());
    35                         lstImgs.Add(_imageB.Clone());
    36                         EnqueueImage(lstImgs);//入队列
    37                     }
    38                 }
    39                 catch(Exception ex) //处理超时引发的异常
    40                 {
    41                     continue;
    42                 }
    43             }
    44         }
    45         private static void Process()
    46         {
    47             while(cAuto.bStart)
    48             {
    49                 Thread.Sleep(20);
    50                 if (IsQueueImageEmpty()) { continue; }
    51                 List<HImage> lstImage = DequeueImage(); //出队列
    52                 //do something
             } 54 } 55 private static void HObjectToHImage(HObject obj, ref HImage img) 56 { 57 HTuple pointer, type, width, heght; 58 HOperatorSet.GetImagePointer1(obj, out pointer, out type, out width, out heght); 59 img.GenImage1(type, width, heght, pointer); 60 } 61
  • 相关阅读:
    sourcenav安装
    vim-addon-manager【转】
    zmq重点
    一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。
    微软验证码项目 Captcha Code Demo 从 .NET Core 1.1.2升级到2.1.0
    海康设备如何接入萤石开放平台
    ABP 启用多租户实现数据隔离
    Docker 开发者常用操作命令
    .NET Core 深度克隆对象,引用类型的平行世界
    详解 .NET Core 遍历 List 并移除项
  • 原文地址:https://www.cnblogs.com/larry-xia/p/9262816.html
Copyright © 2011-2022 走看看