public gxImage GetGxImage() { if (this.cam == null) { return(null); } cam.GetCaptureInfo(); int cap_frameix = cam.GetPropertyInt("captureinfo/newestframeix"); gxImage image = new gxImage(); //String fname = ""; //fname = String.Format("getframe{0:00}.bmp", i); //Console.Write(String.Format("GetFrame {0}...", i)); cam.GetFrame((int)FXCAM_GETFRAME_FLAGS.FXCAM_GETFRAME_NEWEST, 0, image); // Console.WriteLine("OK"); // Save to file if (image.GetPixelFormat() != (int)GX_PIXELFORMATS.GX_GRAY) { image.Convert((int)GX_PIXELFORMATS.GX_RGB); // color image } //Console.Write(String.Format("Save image: {0}...", fname)); //image.Save(fname, (int)GX_IMGFILEFORMATS.GX_BMP); //Console.WriteLine("OK"); //System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(image.SaveToMem((int)gx.GX_IMGFILEFORMATS.GX_JPEG))); return(image); }
/// <summary> /// Khoi tao camera IP /// </summary> /// <param name="pIP"></param> /// <returns>1. OK, 0. Error</returns> public int InitCamera(string pIP) { try { // Init new object //mFxCamera = new fxCamera(); mFxCamera.IsValid(); // Connect to the camera mFxCamera.SetProperty("connect/devname", pIP); mFxCamera.Connect(); // Stop capture mFxCamera.StopCapture(); // Turn on automatic synchronization (synchronize the DSP time to PC time) // Don't use this if you have NTP synchronization in the camera mFxCamera.SetProperty("time/sync", 1); // Query camera information int img_width = mFxCamera.GetPropertyInt("info/capture/xsize"); int img_height = mFxCamera.GetPropertyInt("info/capture/ysize"); if ((img_width == 0) || (img_height == 0)) { WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, string.Format("Unknown camera type: {0}", mFxCamera.GetPropertyInt("info/camera_type"))); return(0); } // Setup camera if (IS_CONFIG_CAMERA) { mFxCamera.MPStartTransaction(); mFxCamera.SetProperty("capture/lights", 0); mFxCamera.SetProperty("capture/again", 100); mFxCamera.SetProperty("capture/dgain", 100); mFxCamera.SetProperty("capture/shutter", 5000); mFxCamera.SetProperty("capture/fps", mFxCamera.GetPropertyInt("info/capture/fps")); mFxCamera.SetProperty("capture/gamma", 1); // 0: linear, 1: gamma mFxCamera.SetProperty("camera/led_infra", 1); // 1 = turn on all LEDs (0=off) mFxCamera.SetProperty("camera/led_power", 1); // normal: 16V mFxCamera.SetProperty("camera/led_timeus", 100); // 100us mFxCamera.SetProperty("imgproc/shutter/max", 10000); mFxCamera.SetProperty("imgproc/again/max", 200); mFxCamera.SetProperty("capture/color", 0); mFxCamera.MPCommit(); } // Switch to automatic mode mFxCamera.SwitchMode((int)FXCAM_MODES.FXCAM_MODE_AUTOMATIC); // Unlock all locked frames if there is any mFxCamera.UnlockFrames((ushort)FXCAM_UNLOCK_FLAGS.FXCAM_UNLOCK_RELEASE_ALL, 0, 0); return(1); } catch (Exception ex) { WriteLogFile(this.GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, ex.Message); return(0); } }
public bool StartCameraService() { try { this.cam = new fxCamera(); // Check the fxcam module cam.IsValid(); // Connect to the camera Console.Write("Connect to the camera..."); cam.SetProperty("connect/devname", this.Ip); cam.Connect(); Console.WriteLine("OK"); // Stop capture cam.StopCapture(); // Turn on automatic synchronization (synchronize the DSP time to PC time) // Don't use this if you have NTP synchronization in the camera cam.SetProperty("time/sync", 1); // Query camera information int img_width = cam.GetPropertyInt("info/capture/xsize"); int img_height = cam.GetPropertyInt("info/capture/ysize"); if ((img_width == 0) || (img_height == 0)) { Console.WriteLine("Unknown camera type: {0}", cam.GetPropertyInt("info/camera_type")); return(false); } // Setup camera Console.Write("Setup camera..."); cam.MPStartTransaction(); cam.SetProperty("capture/again", 100); cam.SetProperty("capture/dgain", 100); HPS.BLL.InCameraPicturesBLL.BLLInCameraPictures_TFactory factory = new HPS.BLL.InCameraPicturesBLL.BLLInCameraPictures_TFactory(); //if (factory.ServerTime.CompareTo("20:00:00")>0 && factory.ServerTime.CompareTo("06:00:00")<0) //{ cam.SetProperty("capture/shutter", 500); cam.SetProperty("capture/lights", 0); //} //else //{ // cam.SetProperty("capture/shutter",2500); // cam.SetProperty("capture/lights", 1); //} cam.SetProperty("capture/fps", cam.GetPropertyInt("info/capture/fps")); cam.SetProperty("capture/gamma", 0); // 0: linear, 1: gamma cam.SetProperty("camera/led_infra", 1); // 1 = turn on all LEDs (0=off) cam.SetProperty("camera/led_power", 1); // normal: 16V cam.SetProperty("camera/led_timeus", 100); // 100us cam.SetProperty("imgproc/shutter/max", 10000); cam.SetProperty("imgproc/again/max", 200); cam.SetProperty("capture/color", 0); cam.MPCommit(); Console.WriteLine("OK"); // Switch to automatic mode Console.Write("Switch to the automatic mode..."); cam.SwitchMode((int)FXCAM_MODES.FXCAM_MODE_AUTOMATIC); Console.WriteLine("OK"); // Unlock all locked frames if there is any cam.UnlockFrames((ushort)FXCAM_UNLOCK_FLAGS.FXCAM_UNLOCK_RELEASE_ALL, 0, 0); // Start capture Console.Write("Start the capturing..."); cam.StartCapture(); Console.WriteLine("OK"); //Waiting for the end of the camera initialization Thread.Sleep(2000); return(true); } catch { return(false); } }