示例#1
0
        /// <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;
        }
示例#2
0
        /// <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;
        }
        /// <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;
        }
示例#5
0
 public static extern int flycaptureStart(int flycapcontext,
                                          PGRFlyModule.FlyCaptureVideoMode videoMode,
                                          PGRFlyModule.FlyCaptureFrameRate frameRate);
示例#6
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;
        }