/// <summary> /// Initializes the camera driver /// </summary> /// <param name="cameraIndex">If only one Point Grey camera is connected, then use '0'. /// If more than one Point Grey cameras connected, then use between '0' and 'number of /// Point Grey cameras connected - 1'</param> /// <param name="frameRate">The frame rate you desire</param> /// <param name="videoMode"></param> /// <param name="grayscale"></param> unsafe public void Initialize(int cameraIndex, PGRFlyModule.FlyCaptureFrameRate frameRate, PGRFlyModule.FlyCaptureVideoMode videoMode, bool grayscale) { this.cameraIndex = cameraIndex; int flycapContext; int ret; // Create the context. ret = PGRFlyDllBridge.flycaptureCreateContext(&flycapContext); if (ret != 0) { ReportError(ret, "flycaptureCreateContext"); } // Initialize the camera. ret = PGRFlyDllBridge.flycaptureInitialize(flycapContext, cameraIndex); if (ret != 0) { ReportError(ret, "flycaptureInitialize"); } // Get the info for this camera. ret = PGRFlyDllBridge.flycaptureGetCameraInformation(flycapContext, ref flycapInfo); if (ret != 0) { ReportError(ret, "flycaptureGetCameraInformation"); } if (flycapInfo.CameraType == PGRFlyModule.FlyCaptureCameraType.FLYCAPTURE_BLACK_AND_WHITE && !grayscale) { throw new GoblinException("This Point Grey camera is B&W, so you need to initialize " + "the video capture device with grayscale"); } cameraType = flycapInfo.CameraType; cameraModel = flycapInfo.CameraModel; // Start FlyCapture. /*if (cameraModel == PGRFlyModule.FlyCaptureCameraModel.FLYCAPTURE_DRAGONFLY2) * ret = PGRFlyDllBridge.flycaptureStart(flycapContext, * PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_640x480RGB, frameRate); * else*/ ret = PGRFlyDllBridge.flycaptureStart(flycapContext, videoMode, frameRate); if (ret != 0) { ReportError(ret, "flycaptureStart"); } this.flycapContext = flycapContext; }
/// <summary> /// Creates a video capture using the Point Grey FlyCapture library. /// </summary> public PointGreyCapture_1_7() { cameraInitialized = false; videoDeviceID = -1; flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_ANY; cameraWidth = 0; cameraHeight = 0; grayscale = false; failureCount = 0; }
public void InitVideoCapture(int videoDeviceID, FrameRate framerate, Resolution resolution, ImageFormat format, bool grayscale) { if (cameraInitialized) return; this.resolution = resolution; this.grayscale = grayscale; this.frameRate = framerate; this.videoDeviceID = videoDeviceID; this.format = format; switch (resolution) { case Resolution._160x120: cameraWidth = 160; cameraHeight = 120; break; case Resolution._320x240: cameraWidth = 320; cameraHeight = 240; break; case Resolution._640x480: cameraWidth = 640; cameraHeight = 480; break; case Resolution._800x600: cameraWidth = 800; cameraHeight = 600; break; case Resolution._1024x768: cameraWidth = 1024; cameraHeight = 768; break; case Resolution._1280x1024: cameraWidth = 1280; cameraHeight = 960; break; case Resolution._1600x1200: cameraWidth = 1600; cameraHeight = 1200; break; } flyCapture = new PGRFlyCapture(); PGRFlyModule.FlyCaptureFrameRate flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_ANY; switch (frameRate) { case FrameRate._15Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_15; break; case FrameRate._30Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_30; break; case FrameRate._50Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_50; break; case FrameRate._60Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_60; break; case FrameRate._120Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_120; break; case FrameRate._240Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_240; break; } if (flyVideoMode.Equals(PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_ANY)) { switch (resolution) { case Resolution._160x120: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_160x120YUV444; break; case Resolution._320x240: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_320x240YUV422; break; case Resolution._640x480: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_640x480Y8; break; case Resolution._800x600: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_800x600Y8; break; case Resolution._1024x768: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1024x768Y8; break; case Resolution._1280x1024: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1280x960Y8; break; case Resolution._1600x1200: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1600x1200Y8; break; } } flyCapture.Initialize(videoDeviceID, flyFrameRate, flyVideoMode, grayscale); cameraInitialized = true; }
public static extern int flycaptureStart(int flycapcontext, PGRFlyModule.FlyCaptureVideoMode videoMode, PGRFlyModule.FlyCaptureFrameRate frameRate);
public void InitVideoCapture(int videoDeviceID, FrameRate framerate, Resolution resolution, ImageFormat format, bool grayscale) { if (cameraInitialized) { return; } this.resolution = resolution; this.grayscale = grayscale; this.frameRate = framerate; this.videoDeviceID = videoDeviceID; this.format = format; switch (resolution) { case Resolution._160x120: cameraWidth = 160; cameraHeight = 120; break; case Resolution._320x240: cameraWidth = 320; cameraHeight = 240; break; case Resolution._640x480: cameraWidth = 640; cameraHeight = 480; break; case Resolution._800x600: cameraWidth = 800; cameraHeight = 600; break; case Resolution._1024x768: cameraWidth = 1024; cameraHeight = 768; break; case Resolution._1280x1024: cameraWidth = 1280; cameraHeight = 960; break; case Resolution._1600x1200: cameraWidth = 1600; cameraHeight = 1200; break; } flyCapture = new PGRFlyCapture(); PGRFlyModule.FlyCaptureFrameRate flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_ANY; switch (frameRate) { case FrameRate._15Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_15; break; case FrameRate._30Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_30; break; case FrameRate._50Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_50; break; case FrameRate._60Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_60; break; case FrameRate._120Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_120; break; case FrameRate._240Hz: flyFrameRate = PGRFlyModule.FlyCaptureFrameRate.FLYCAPTURE_FRAMERATE_240; break; } if (flyVideoMode.Equals(PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_ANY)) { switch (resolution) { case Resolution._160x120: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_160x120YUV444; break; case Resolution._320x240: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_320x240YUV422; break; case Resolution._640x480: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_640x480Y8; break; case Resolution._800x600: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_800x600Y8; break; case Resolution._1024x768: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1024x768Y8; break; case Resolution._1280x1024: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1280x960Y8; break; case Resolution._1600x1200: flyVideoMode = PGRFlyModule.FlyCaptureVideoMode.FLYCAPTURE_VIDEOMODE_1600x1200Y8; break; } } flyCapture.Initialize(videoDeviceID, flyFrameRate, flyVideoMode, grayscale); cameraInitialized = true; }