Example #1
0
        public CLEyeCamera(CLEyeCameraColorMode colorMode, CLEyeCameraResolution resolution)
        {
            int cameraImageWidth  = 0;
            int cameraImageHeight = 0;

            hwCameraIntPtr = CLEyeCreateCamera(CameraUUID(0), colorMode, resolution, 30);
            if (hwCameraIntPtr == IntPtr.Zero)
            {
                return;
            }

            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_VFLIP, 1);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_EXPOSURE, 0);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_GAIN, 0);

            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_WHITEBALANCE, 0);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_GREEN, 128);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_BLUE, 128);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_RED, 128);

            CLEyeCameraGetFrameDimensions(hwCameraIntPtr, ref cameraImageWidth, ref cameraImageHeight);
            currentImage           = new ImageBuffer(cameraImageWidth, cameraImageHeight, 32, new BlenderBGRA());
            cameraCopyBufferIntPtr = Marshal.AllocHGlobal(cameraImageWidth * cameraImageHeight * 4);
            // create thread exit event
            _exitEvent = new ManualResetEvent(false);
            // start capture here
            ThreadPool.QueueUserWorkItem(Capture);
        }
Example #2
0
 public CLEyeCameraDevice(CLEyeCameraResolution resolution,
                          CLEyeCameraColorMode colorMode, int fps)
 {
     // set default values
     Framerate  = fps;
     ColorMode  = colorMode;
     Resolution = resolution;
 }
Example #3
0
        private Size GetSize(CLEyeCameraResolution resolution)
        {
            switch (resolution)
            {
            case CLEyeCameraResolution.CLEYE_QVGA:
                return(new Size(320, 240));

            case CLEyeCameraResolution.CLEYE_VGA:
                return(new Size(640, 480));

            default:
                throw (new Exception("Size unsupported"));
            }
        }
 public static extern IntPtr CLEyeCreateCamera(Guid camUUID, CLEyeCameraColorMode mode, CLEyeCameraResolution res, float frameRate);
Example #5
0
 public static extern IntPtr CLEyeCreateCamera(Guid camUUID, CLEyeCameraColorMode mode, CLEyeCameraResolution res, float frameRate);
        public void StartPS3Eye(bool kinectAsSupervisor)
        {
            // open devices
            int framerate = panel.FrameRate;

            currentFramerate = framerate;
            CLEyeCameraResolution resolution = panel.Resolution;

            for (int i = 0; i < activeCameras; i++)
            {
                devices[i].Framerate  = framerate;
                devices[i].Resolution = resolution;
                devices[i].Create(PS3EyeDevice.CameraUUID(i));
            }

            // update panel
            panel.OnGainChanged();
            panel.OnExposureChanged();
            panel.OnWhiteBalanceChanged();

            // --- multi thread version
            // resolution
            if (resolution == CLEyeCameraResolution.CLEYE_VGA)
            {
                psWidth  = 640;
                psHeight = 480;
            }
            else
            {
                psWidth  = 320;
                psHeight = 240;
            }

            // sizes
            Context.PsWidth  = psWidth;
            Context.PsHeight = psHeight;
            psPixelSize      = psWidth * psHeight;
            psByteSize       = psPixelSize * 4;

            // start/stop
            isPs3EyeRunning = true;
            panel.SetMode(true);

            if (kinectAsSupervisor)
            {
                barrier      = new Barrier(numCameras);
                cancelSource = new CancellationTokenSource();
                cancelToken  = cancelSource.Token;

                for (int i = 0; i < numCameras; i++)
                {
                    BackgroundWorker bgWorkerCam = new BackgroundWorker();
                    bgWorkerCam.DoWork += new DoWorkEventHandler(bgWorkerCamWithKinect_DoWork);
                    bgWorkerCam.RunWorkerAsync(i);
                }
            }
            else
            {
                barrier      = new Barrier(numCameras + 1);
                cancelSource = new CancellationTokenSource();
                cancelToken  = cancelSource.Token;

                for (int i = 0; i < numCameras; i++)
                {
                    BackgroundWorker bgWorkerCam = new BackgroundWorker();
                    bgWorkerCam.DoWork += new DoWorkEventHandler(bgWorkerCam_DoWork);
                    bgWorkerCam.RunWorkerAsync(i);
                }

                BackgroundWorker bgWorkerSupervisor = new BackgroundWorker();
                bgWorkerSupervisor.DoWork += new DoWorkEventHandler(bgWorkerSupervisor_DoWork);
                bgWorkerSupervisor.RunWorkerAsync();
            }
        }
		public CLEyeCameraDevice(CLEyeCameraResolution resolution,
			CLEyeCameraColorMode colorMode, int fps)
		{
			// set default values
			Framerate = fps;
			ColorMode = colorMode;
			Resolution = resolution;
		}
Example #8
0
        public CLEyeCamera(CLEyeCameraColorMode colorMode, CLEyeCameraResolution resolution)
        {
            int cameraImageWidth = 0;
            int cameraImageHeight = 0;
            
            hwCameraIntPtr = CLEyeCreateCamera(CameraUUID(0), colorMode, resolution, 30);
            if (hwCameraIntPtr == IntPtr.Zero)
            {
                return;
            }

            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_VFLIP, 1);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_EXPOSURE, 0);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_GAIN, 0);

            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_AUTO_WHITEBALANCE, 0);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_GREEN, 128);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_BLUE, 128);
            CLEyeSetCameraParameter(hwCameraIntPtr, CLEyeCameraParameter.CLEYE_WHITEBALANCE_RED, 128);

            CLEyeCameraGetFrameDimensions(hwCameraIntPtr, ref cameraImageWidth, ref cameraImageHeight);
            currentImage = new ImageBuffer(cameraImageWidth, cameraImageHeight, 32, new BlenderBGRA());
            cameraCopyBufferIntPtr = Marshal.AllocHGlobal(cameraImageWidth * cameraImageHeight * 4);
            // create thread exit event
            _exitEvent = new ManualResetEvent(false);
            // start capture here
            ThreadPool.QueueUserWorkItem(Capture);
        }