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]); }
加载在项目中应用部分
//触发相机部分 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)]