机器视觉之eVision

比利时 EURESYS 公司的 eVision 图像类的类库 EasyMultiCam 库,它提供了一个有效的和易于使用的硬件抽象层,因此可以作为图像采集卡的高级驱动动序,可以同时为多个 CCD 影像提供不同的传输通道,并且他们之间的信道互不影响。

MultiCam 作为所有 Euresys 采集卡的编程接口,为了方便编程人员的工作,它将"信道"相关的参数写入 CAM 文件里,通过调用 CAM 文件即可完成参数设置。整个视频图像的采集主要包括三个部分:初始化信道、打开信道、关闭信道。

一:初始化信道
首先我们要创建两个信道:
Euresys::MultiCam::Channel* channelWith1;
Euresys::MultiCam::Channel* channelWith2;
设置相关通道参数:
#define MC_CamFile (MCPARAMID)
#define camFile   -1
channelWith1 ->SetParam(MC_CamFile, camFile);
channelWith2 ->SetParam(MC_CamFile, camFile);
然后注册回调函数
channel->RegisterCallback();
 
二:打开信道
打开信道之前,首先做一个判断,是选择的信道 1 还是信道 2,然后发送命令并激活信道。
switch (currentChannel)
{
  case CHANNEL_1:
    channelWith1->SetActive();//打开信道 1
    break;
       case CHANNEL_2:
    channelWith2->SetActive();//打开信道 2
    break;
  default:
    break;
}
三:关闭信道

关闭信道,可以用函数 SetIdle(),通过选择来关闭当前的通道。
switch (currentChannel)
   {
    case   CHANNEL_WITH_1:
      channelWith1->SetIdle();     //关闭信道 1
      break;
    case   CHANNEL_WITH_2:
      channelWith2->SetIdle();     //关闭信道 2
      break;
  } 
 
原文地址:https://www.cnblogs.com/tony-rogers/p/9958560.html