> 文档中心 > Basler相机SDK官方用例,改成集合多相机一起使用,已在项目中使用

Basler相机SDK官方用例,改成集合多相机一起使用,已在项目中使用


Basler相机SDK官方用例,改成集合多相机一起使用,已在项目中使用

 ///  /// 相机列表 ///  public  List<UserViev> camera = new List<UserViev>(); public Basler_Main() {     InitializeComponent();     UpdateDeviceList(); } //更新设备列表 private void UpdateDeviceList() {     try     {  // 向camera finder询问相机设备列表。  List<ICameraInfo> allCameras = CameraFinder.Enumerate();  ListView.ListViewItemCollection items = deviceListView.Items;  // 在所有找到的摄像机上循环  foreach (ICameraInfo cameraInfo in allCameras)  {      //循环查看摄影机列表中的所有摄影机      bool newitem = true;      foreach (ListViewItem item in items)      {   ICameraInfo tag = item.Tag as ICameraInfo;   // 摄像头是否已在摄像头列表中找到?   if ( tag[CameraInfoKey.FullName] == cameraInfo[CameraInfoKey.FullName])   {tag = cameraInfo;newitem = false;break;   }      }      // 如果相机不在列表中,请将其添加到列表中      if (newitem)      {   // 创建要显示的项目.   ListViewItem item = new ListViewItem(cameraInfo[CameraInfoKey.FriendlyName]);   // 创建工具提示文本   string toolTipText = "";   foreach( KeyValuePair<string, string> kvp in cameraInfo)//ModelName  acA5472-5gm  SerialNumber  22991190   {if (kvp.Key== "ModelName"){    toolTipText = kvp.Value;}//toolTipText += kvp.Key + ": " + kvp.Value + "\n";   }   // 在显示的项目中存储摄像头信息   item.Tag = cameraInfo;   item.ToolTipText = toolTipText;   item.Text = toolTipText;   // 附加设备数据   comboBoxCam.Items.Add(item);      }  }  // 移除已断开连接的旧相机设备.  foreach (ListViewItem item in items)  {      bool exists = false;      // 对于列表中的每个摄像头,检查是否可以通过枚举找到      foreach (ICameraInfo cameraInfo in allCameras)      {   if (((ICameraInfo)item.Tag)[CameraInfoKey.FullName] == cameraInfo[CameraInfoKey.FullName])   {exists = true;break;   }      }      // 如果没有找到摄像头,请将其从列表视图中删除.      if (!exists)      {   deviceListView.Items.Remove(item);      }  }     }     catch (Exception exception)     {  ShowException(exception);     } } private void imgeEventCallback(string grabException, Image imge, string itemtex) {     label1.Text = grabException;     fr_IMV_Vision.imgeEventCallback( grabException,  imge,  itemtex); } // 显示异常窗口 private void ShowException(Exception exception) {     MessageBox.Show("Exception caught:\n" + exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } private void deviceListView_KeyDown(object sender, KeyEventArgs ev) {     if (ev.KeyCode == Keys.F5)     {  ev.Handled = true;  // Update the list of available camera devices.  UpdateDeviceList();     } } private void comboBoxCam_SelectedIndexChanged(object sender, EventArgs e) {     panel1.Controls.Clear();     camera[(int)comboBoxCam.SelectedIndex].Dock = DockStyle.Fill;     panel1.Controls.Add(camera[(int)comboBoxCam.SelectedIndex]); }

在这里插入图片描述加载在项目中应用部分

Basler相机SDK官方用例,改成集合多相机一起使用,已在项目中使用

 //触发相机部分 MV.Basler_Mai.camera[Cam_Inex].OneShot();  for (int i = 0; i < 500; i++)  {      Thread.Sleep(10);      if (imgeEventwc == true  /*|| (MV.Basler_Mai.camera[Cam_Inex].IsValid)*/)      {   return true;      }  }
//图像获取事件 public static void imgeEventCallback(string grabException, Image imge1, string itemtex) { ImvWin_mian.WImage = image;     imgeEventwc = true; }

下载地址:[(https://mp.csdn.net/console/upDetailed)]

松山湖人才网