private void Init() { ManagedSystem system = new ManagedSystem(); cam = system.GetCameras()[0]; cam.Init(); }
// This function acts as the body of the example; please see // NodeMapInfo_CSharp example for more in-depth comments on setting up // cameras. public int RunSingleCamera(IManagedCamera cam) { int result = 0; try { // Retrieve TL device nodemap and print device information INodeMap nodeMapTLDevice = cam.GetTLDeviceNodeMap(); result = PrintDeviceInfo(nodeMapTLDevice); // Initialize camera cam.Init(); // Retrieve GenICam nodemap INodeMap nodeMap = cam.GetNodeMap(); // Acquire images result = result | AcquireImages(cam, nodeMap, nodeMapTLDevice); // Deinitialize camera cam.DeInit(); } catch (SpinnakerException ex) { writeLog(String.Format("Error: {0}\n", ex.Message)); result = -1; } return(result); }
private void GetNodeMapsAndInitialize() { nodeMapTLDevice = managedCamera.GetTLDeviceNodeMap(); nodeMapTLStream = managedCamera.GetTLStreamNodeMap(); managedCamera.Init(); nodeMap = managedCamera.GetNodeMap(); Console.WriteLine("Camera number {0} opened and initialized on thread {1}", camNumber, Thread.CurrentThread.ManagedThreadId); }
public override bool Connect() { bool result = false; try { system = new ManagedSystem(); IList <IManagedCamera> camList = system.GetCameras(); if (camList.Count != 1) { int count = camList.Count; foreach (IManagedCamera mc in camList) { mc.Dispose(); } // Clear camera list before releasing system camList.Clear(); // Release system system.Dispose(); throw new Exception("Only one camera should be connected, but found " + count); } camera = camList[0]; // Initialize camera camera.Init(); SerialNumber = Convert.ToUInt32(camera.DeviceSerialNumber); FirmwareVersion = camera.DeviceFirmwareVersion; // Retrieve GenICam nodemap nodeMap = camera.GetNodeMap(); //initialise settings DefaultSettings(); ImageWidth = camera.Width; ImageHeight = camera.Height; result = true; } catch (Exception /*ex*/) { //App.LogEntry.AddEntry("Failed to Connect to Point Grey Camera : " + ex.Message); result = false; } return(result); }
public override bool Init(int index = 0) { bool ret = false; try { // Retrieve singleton reference to system object ManagedSystem system = new ManagedSystem(); // Retrieve list of cameras from the system IList <IManagedCamera> camList = system.GetCameras(); LogHelper.AppLoger.DebugFormat("Number of cameras detected: {0}", camList.Count); if (camList.Count == 0) { LogHelper.AppLoger.Error("没有发现相机!"); return(ret); } m_Camera = camList[index]; // Retrieve TL device nodemap and print device information INodeMap nodeMapTLDevice = m_Camera.GetTLDeviceNodeMap(); // Initialize camera m_Camera.Init(); // Retrieve GenICam nodemap m_NodeMap = m_Camera.GetNodeMap(); //if (!m_camera.DeviceConnectionStatus.IsRegister) //{ // Dialogs.Show("连接相机失败!"); // return ret; //} //CameraInfo camInfo = m_camera.GetCameraInfo(); IString iDeviceSerialNumber = nodeMapTLDevice.GetNode <IString>("DeviceSerialNumber"); LogHelper.AppLoger.DebugFormat("camera serial number:{0}", iDeviceSerialNumber); //Set embedded timestamp to on //EmbeddedImageInfo embeddedInfo = m_camera.GetEmbeddedImageInfo(); //embeddedInfo.timestamp.onOff = true; //m_camera.SetEmbeddedImageInfo(embeddedInfo); SetAcquisitionMode("Continuous"); ret = true; } catch (Exception ex) { LogHelper.AppLoger.Error(ex); } return(ret); }
// This function acts as the body of the example; please see // NodeMapInfo_CSharp example for more in-depth comments on setting up // cameras. int RunSingleCamera(IManagedCamera cam) { int result = 0; int err = 0; try { // Retrieve TL device nodemap and print device information INodeMap nodeMapTLDevice = cam.GetTLDeviceNodeMap(); result = PrintDeviceInfo(nodeMapTLDevice); // Initialize camera cam.Init(); // Retrieve GenICam nodemap INodeMap nodeMap = cam.GetNodeMap(); // Acquire images List <IManagedImage> images = new List <IManagedImage>(); err = result | AcquireImages(cam, nodeMap, ref images); if (err < 0) { return(err); } // Create video result = result | SaveListToVideo(nodeMap, nodeMapTLDevice, ref images); // Deinitialize camera cam.DeInit(); } catch (SpinnakerException ex) { Console.WriteLine("Error: {0}", ex.Message); result = -1; } return(result); }
public MainWindow() { InitializeComponent(); ManagedSystem ms = new ManagedSystem(); IList <IManagedCamera> camList = ms.GetCameras(); IManagedCamera cam = camList[0]; GUIFactory AcquisitionGUI = new GUIFactory(); cam.Init(); //AcquisitionGUI.ConnectGUILibrary(cam); ImageDrawingWindow AcquisitionDrawing = AcquisitionGUI.GetImageDrawingWindow(); //AcquisitionDrawing.Connect(cam); //AcquisitionDrawing.Start(); //AcquisitionDrawing.Stop(); AcquisitionDrawing.ShowModal(); }
public IManagedImage RetrieveMonoImage() { IManagedImage imgResult = null; // Retrieve singleton reference to system object ManagedSystem system = new ManagedSystem(); // Retrieve list of cameras from the system IList <IManagedCamera> camList = system.GetCameras(); if (camList.Count < 1) { writeLog(String.Format("No camera detected. Aborted.\n\n")); return(null); } else { writeLog(String.Format("Number of cameras detected: {0}\n\n", camList.Count)); } // Use the first camera using (camList[0]) { writeLog(String.Format("Running example for the 1st camera...\n")); IManagedCamera cam = camList[0]; try { // Run for a camera // Retrieve TL device nodemap and print device information INodeMap nodeMapTLDevice = cam.GetTLDeviceNodeMap(); PrintDeviceInfo(nodeMapTLDevice); // Initialize camera cam.Init(); // Retrieve GenICam nodemap INodeMap nodeMap = cam.GetNodeMap(); /***** Acquire single BW image from the camera *****/ writeLog(String.Format("\n*** BW IMAGE ACQUISITION ***\n\n")); SetNodeMapItem(nodeMap, "AcquisitionMode", "Continuous"); cam.BeginAcquisition(); using (IManagedImage rawImage = cam.GetNextImage()) { if (rawImage.IsIncomplete) { writeLog(String.Format( "Image incomplete with image status {0}...\n", rawImage.ImageStatus)); imgResult = null; } else { // TODO: Need to return the acquired rawImage here. //IManagedImage monoImage = rawImage.Convert( // PixelFormatEnums.Mono16, ColorProcessingAlgorithm.EDGE_SENSING); IManagedImage monoImage = rawImage.Convert(PixelFormatEnums.Mono8); imgResult = monoImage; } } cam.EndAcquisition(); /***** Acquiring Complete *****/ // Deinitialize camera cam.DeInit(); } catch (SpinnakerException ex) { writeLog(String.Format("Error: {0}\n", ex.Message)); imgResult = null; } writeLog(String.Format("Camera example complete...\n")); } // Clear camera list before releasing system camList.Clear(); // Release system system.Dispose(); writeLog(String.Format("Done!\n")); return(imgResult); }
public override bool Connect() { bool result = false; //try //{ // CameraSelectionDialog m_selDlg = new CameraSelectionDialog(); // if (m_selDlg.ShowModal()) // { // ManagedPGRGuid[] guids = m_selDlg.GetSelectedCameraGuids(); // if (guids.Length == 0) // { // //MessageBox.Show("Please select a camera", "No camera selected"); // return false; // } // camera = new ManagedCamera(); // m_ctldlg = new CameraControlDialog(); // camera.Connect(guids[0]); // //initialise settings // InitializeSettings(); // InitializeSettingsWB(); // CameraInfo ci = camera.GetCameraInfo(); // SerialNumber = ci.serialNumber; // result = true; // } //} //catch (Exception /*ex*/) //{ // //App.LogEntry.AddEntry("Failed to Connect to Point Grey Camera : " + ex.Message); // result = false; //} system = new ManagedSystem(); IList <IManagedCamera> camList = system.GetCameras(); if (camList.Count != 1) { int count = camList.Count; foreach (IManagedCamera mc in camList) { mc.Dispose(); } // Clear camera list before releasing system camList.Clear(); // Release system system.Dispose(); throw new Exception("Only one camera should be connected, but found " + count); } camera = camList[0]; // Initialize camera camera.Init(); // Retrieve GenICam nodemap nodeMap = camera.GetNodeMap(); SerialNumber = Convert.ToUInt32(camera.DeviceSerialNumber); //initialise settings try { InitializeSettings(); InitializeSettingsWB(); result = true; } catch (SpinnakerException ex) { result = false; Debug.WriteLine("PtGrey connect failed: " + ex.Message); } return(result); }
public bool Open(ConcurrentQueue <PtGreyCameraImage> imageQ, out string message) { bool result = false; message = ""; system = new ManagedSystem(); // Retrieve list of cameras from the system camList = system.GetCameras(); // Finish if there are no cameras if (camList.Count != 1) { foreach (IManagedCamera mc in camList) { mc.Dispose(); } // Clear camera list before releasing system camList.Clear(); // Release system system.Dispose(); message = "Camera count is " + camList.Count; } else { try { managedCamera = camList[0]; if (managedCamera.TLDevice.DeviceDisplayName != null && managedCamera.TLDevice.DeviceDisplayName.IsReadable) { message = managedCamera.TLDevice.DeviceDisplayName.ToString(); } // Initialize camera managedCamera.Init(); // Retrieve GenICam nodemap nodeMap = managedCamera.GetNodeMap(); imageQueue = imageQ; result = true; } catch (SpinnakerException ex) { Debug.WriteLine("Error: {0}", ex.Message); message = ex.Message; result = false;; } catch (Exception ex) { message = ex.Message; result = false; } } return(result); }
public bool Open(ConcurrentQueue <PtGreyCameraImage> imageQ, out string message, out long width, out long height) { bool result = false; message = ""; width = height = 0; system = new ManagedSystem(); // Retrieve list of cameras from the system camList = system.GetCameras(); // Finish if there are no cameras if (camList.Count != 1) { foreach (IManagedCamera mc in camList) { mc.Dispose(); } // Clear camera list before releasing system camList.Clear(); // Release system system.Dispose(); message = "Camera count is " + camList.Count; } else { try { #region FlyCaptureAPI FlyCapture2Managed.ManagedBusManager busMgr = new FlyCapture2Managed.ManagedBusManager(); var guid = busMgr.GetCameraFromIndex(0); flycapManagedCamera = new FlyCapture2Managed.ManagedCamera(); flycapManagedCamera.Connect(guid); #endregion managedCamera = camList[0]; if (managedCamera.TLDevice.DeviceDisplayName != null && managedCamera.TLDevice.DeviceDisplayName.IsReadable) { message = managedCamera.TLDevice.DeviceDisplayName.ToString(); } // Initialize camera managedCamera.Init(); width = managedCamera.Width.Value; height = managedCamera.Height.Value; // Retrieve GenICam nodemap nodeMap = managedCamera.GetNodeMap(); imageQueue = imageQ; result = true; } catch (SpinnakerException ex) { Debug.WriteLine("Error: {0}", ex.Message); message = ex.Message; result = false;; } catch (Exception ex) { message = ex.Message; result = false; } } return(result); }
public MainWindow() { InitializeComponent(); time.Tick += new EventHandler(Time_Tick); time.Interval = 10; exposureControl.sliderName.Content = "曝光时间"; exposureControl.sliderCheck.Content = "手动曝光"; frameRateControl.sliderName.Content = "帧率"; frameRateControl.sliderCheck.Content = "手动帧率"; blackLevelControl.sliderName.Content = "灰度偏移"; blackLevelControl.sliderCheck.Content = "手动偏移"; GainControl.sliderName.Content = "增益"; GainControl.sliderCheck.Content = "手动增益"; acceptPointValue.sliderName.Content = "接受阈值"; acceptPointValue.sliderCheck.Content = "手动"; if (SavePath == null) { SavePath = "./"; } FileStream fileStream; try { fileStream = new FileStream(SavePath + "test.txt", FileMode.Create); fileStream.Close(); File.Delete("test.txt"); } catch { Console.WriteLine("权限不足"); return; } // 单例 system = new ManagedSystem(); // 输出当前库版本 LibraryVersion spinVersion = system.GetLibraryVersion(); Console.WriteLine("Spinnaker library version: {0}.{1}.{2}.{3}\n\n", spinVersion.major, spinVersion.minor, spinVersion.type, spinVersion.build); //输出相机参数-0 camList = system.GetCameras(); if (camList.Count == 0) { camList.Clear(); system.Dispose(); Console.WriteLine("无相机!"); return; } cam = camList[0]; INodeMap nodeMapTLDevice = cam.GetTLDeviceNodeMap(); PrintDeviceInfo(nodeMapTLDevice); // 为文件名检索设备序列号 // *** NOTES *** // 设备序列号可以放置其他设备覆盖本设备图像 // 图像ID和帧ID // deviceSerialNumber = ""; while (true) { try { cam.Init(); break; } catch (SpinnakerException e) { Console.WriteLine("init error"); Thread.Sleep(1000); } } while (cam.DeviceIndicatorMode.Value != DeviceIndicatorModeEnums.Active.ToString()) { Thread.Sleep(1000); } //相机参数初始化 cam.ExposureAuto.Value = ExposureAutoEnums.Continuous.ToString(); cam.AcquisitionFrameRateEnable.Value = true; frameRateManualDisable(); //cam.BlackLevelAuto.Value = BlackLevelAutoEnums.Continuous.ToString(); cam.GainAuto.Value = GainAutoEnums.Continuous.ToString(); Console.WriteLine("设备序列号为: {0}", cam.DeviceSerialNumber.Value); Console.WriteLine("曝光时间设置为 {0} us", cam.ExposureTime.Value); cam.DeviceLinkThroughputLimit.Value = cam.DeviceLinkThroughputLimit.Max; Console.WriteLine("当前带宽:{0}", cam.DeviceLinkThroughputLimit.Value); Console.WriteLine("当前帧率:{0} Hz", cam.AcquisitionFrameRate.Value); #if DEBUG // 判断是否禁用了心跳检测 if (DisableHeartbeat() != 0) { Console.WriteLine("心跳检测未禁用"); System.Windows.Application.Current.Shutdown(); } #endif //调用刷新控件 flushControl(); //接受点阈值 acceptPointValue.slider.Maximum = 255; acceptPointValue.slider.Minimum = 0; acceptPointValue.slider.Value = 60; //控件委托 #region exposureControl.setSliderEvent += () => { cam.ExposureTime.Value = exposureControl.slider.Value; }; exposureControl.setCheckedEvent += () => { cam.ExposureAuto.Value = ExposureAutoEnums.Off.ToString(); }; exposureControl.setUnCheckEvent += () => { cam.ExposureAuto.Value = ExposureAutoEnums.Continuous.ToString(); }; frameRateControl.setSliderEvent += () => { cam.AcquisitionFrameRate.Value = frameRateControl.slider.Value; }; frameRateControl.setCheckedEvent += frameRateManualEnable; frameRateControl.setUnCheckEvent += frameRateManualDisable; //blackLevelControl.setSliderEvent += () => { cam.BlackLevelAuto.Value = BlackLevelAutoEnums.Off.ToString(); }; blackLevelControl.slider.IsEnabled = false; GainControl.setSliderEvent += () => { cam.Gain.Value = GainControl.slider.Value; }; GainControl.setCheckedEvent += () => { cam.GainAuto.Value = GainAutoEnums.Off.ToString(); }; GainControl.setUnCheckEvent += () => { cam.GainAuto.Value = GainAutoEnums.Continuous.ToString(); }; #endregion acceptPointValue.sliderCheck.IsChecked = true; }