protected override bool Setup() { //devices.Add(new GestureCamera(@".")); devices.Add(new PlayBackDevice(@"C:\Users\PerC\Desktop\capture")); AdaptiveTemporalFilter filter; RedEyeDetector detector; processors.Add(detector = new RedEyeDetector()); filters.Add(filter = new AdaptiveTemporalFilter()); renderers.Add(new CameraSetupRender(CameraSetupRender.SceneType.GL3D)); renderers.Add(new QuadSurfaceRender()); renderers.Add(new RedEyeRender3D(detector)); renderers.Add(new CameraSetupRender(CameraSetupRender.SceneType.GL2D)); renderers.Add(new RedEyeRender2D(detector)); return true; }
public void Initialize(BaseCameraApplication capture) { DepthCameraFrame depthImage = capture.GetPrimaryDevice().GetDepthImage(); this.width = depthImage.Width; this.height = depthImage.Height; this.filter = ((AdaptiveTemporalFilter)capture.GetImageFilter()); CvSize sz = new CvSize(depthImage.Width, depthImage.Height); gray = new IplImage(sz, BitDepth.U8, 1); erode = new IplImage(sz, BitDepth.U8, 1); dilate = new IplImage(sz, BitDepth.U8, 1); tmp = new IplImage(sz, BitDepth.U8, 1); mask = new IplImage(sz, BitDepth.U8, 1); imgLabel = new IplImage(sz, BitDepth.F32, 1); faceDetectionBuffer = CLCalc.Program.Variable.Create(new ComputeBuffer<FaceLandmarks>(CLCalc.Program.Context, ComputeMemoryFlags.ReadWrite, 1)); try { CLCalc.Program.Compile(capture.GetPrimaryDevice().GetPreprocessCode() + src); } catch (BuildProgramFailureComputeException ex) { System.Console.WriteLine(ex.Message); Environment.Exit(1); } irImageBuffer = CLCalc.Program.Variable.Create(new ComputeBuffer<byte>(CLCalc.Program.Context, ComputeMemoryFlags.ReadWrite | ComputeMemoryFlags.CopyHostPointer, ir = new byte[width * height])); kernelCopyIRImage = new CLCalc.Program.Kernel("CopyIRImage"); kernelFindFaceLandmarks = new CLCalc.Program.Kernel("FindFaceLandmarks"); }