public KinectFaceTracker(FSDKFacePipeline facePipeline, IKinect kinect, CancellationTokenSource cts) { _kinect = kinect; FacePipeline = facePipeline; _cancellationTokenSource = cts; _coordinateMapper = _kinect.CoordinateMapper; }
public void RetrieveMesh(CVMesh m) { LastMesh = m; ((IDisposable)fusionizer).Dispose(); fusionizer = null; MeshFinished?.Invoke(this, EventArgs.Empty); }
/// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public MainWindow() { _iKinect = new Kinect(); InitializeComponent(); this._kinect = _iKinect.DiscoverKinectSensor(); Initialize(); KinectPoint[,] pic1 = _iKinect.GetColorImage(); // 1st Pic: strange area pic1 = _iKinect.GetColorImage(); //2nd Pic: too dark pic1 = _iKinect.GetColorImage(); //3rd Pic: not the same brightness as "real" image pic1 = _iKinect.GetColorImage(); //4th Pic: okay! MessageBox.Show("Please display the playground", "Display Playground", MessageBoxButton.OK, MessageBoxImage.Information); KinectPoint[,] pic2 = _iKinect.GetColorImage(); KinectPoint[,] newPic = _iKinect.GetDifferenceImage(pic2, pic1, 200); //0x64, 0x1E, 0x32 //newPic = CalculateKMeans(newPic); short[] depthPic = _iKinect.GetDepthImage(); KinectPoint[,] depthAndColorPic = _iKinect.CreateKinectPointArray(); this._colorImageBitmap.WritePixels(this._colorImageBitmapRect, PrintKinectPointArray(newPic, 640, 480), this._colorImageStride, 0); this._colorImageBitmap2.WritePixels(this._colorImageBitmapRect, PrintKinectPointArray(depthAndColorPic, 640, 480), this._colorImageStride, 0); this._colorImageBitmap3.WritePixels(this._colorImageBitmapRect, PrintKinectPointArray(pic1, 640, 480), this._colorImageStride,0); this._colorImageBitmap4.WritePixels(this._colorImageBitmapRect, PrintKinectPointArray(pic2, 640, 480), this._colorImageStride, 0); this._rawDepthImage.WritePixels(this._rawDepthImageRect, PrintKinectPointArray(depthAndColorPic, 640, 480), this._rawDepthImageStride,0); this._rawDepthImage2.WritePixels(this._rawDepthImageRect, depthPic, this._rawDepthImageStride, 0); }
public KinectSequencer() { kinect = new RealKinect(); kinect.NewData += new NewDataEventHandler(kinect_NewData); stopwatch.Start(); SequenceAvailable = false; }
public Dictionary<KinectPoint, RealWorldPoint> TransformKinectToRealWorld(IKinect kinect, List<KinectPoint> kinectPoints) { RealWorldPoint rOrigin = Calibration.Points.Find(x => x.PointType == PointType.Origin).RealWorldPoint; RealWorldPoint rXAxisPoint = Calibration.Points.Find(x => x.PointType == PointType.xAxis).RealWorldPoint; RealWorldPoint rYAxisPoint = Calibration.Points.Find(x => x.PointType == PointType.yAxis).RealWorldPoint; return kinect.CreateRealWorldCoordinates(kinectPoints, rXAxisPoint, rOrigin, rYAxisPoint); }
public Dictionary<BeamerPoint, KinectPoint> CalibrateBeamerToKinect(IBeamerWindow beamerWindow, IKinect kinect) { RunSimpleStrategy(beamerWindow, kinect); CalculateNewPoints(); return new Dictionary<BeamerPoint, KinectPoint>(); //TODO Implement //throw new NotImplementedException(); }
Boolean IDevice.Init() { LoadLogger(); Log.Info("Starting Kinect automation environment..."); _kinect = new KinectData(0); _kHandler = new KinectHandler(_kinect, this); _kHandler.Init(); if (_kinect.GetSensor() == null) { Log.Error("Kinect could not be instantiated. Terminating."); return(false); } return(true); }
public Dictionary<KinectPoint, RealWorldPoint> TransformKinectToRealWorld(IKinect kinect, List<KinectPoint> kinectPoints) { var rwCornerPoints = kinect.CreateRealWorldCoordinates(kinectPoints); foreach (var point in Calibration.Points) { foreach (var realWorldPoint in rwCornerPoints) { if (point.KinectPoint.Equals(realWorldPoint.Key)) { point.RealWorldPoint = realWorldPoint.Value; } } } return rwCornerPoints; }
public GestureProcessor(IKinect kinectHandler, KinectData kinect) { _pointer = new ObjectPointer(); Log.Debug("objectPointer loaded"); _pointer.SetObjects(FileLoader.LoadObj("livingRoom.obj", FileLoader.Units.cm)); Log.Debug("objects loaded"); _kinectHandler = kinectHandler; _kinect = kinect; _seqCoords = new ArrayList(); if (kinect != null) kinect.attachSkeletonHandler(SkeletonDataReadyHandler); _dtw = new DtwGestureRecognizer(12, 0.6, 2, 2, 10); Skeleton2DDataExtract.Skeleton2DdataCoordReady += NuiSkeleton2DdataCoordReady; _pointer.ContextSelected += PointerContextSelected; }
protected Calibration() { Points = new List<Point>(); beamerToKinect = new Dictionary<BeamerPoint, KinectPoint>(); kinectToRealWorld = new Dictionary<KinectPoint, RealWorldPoint>(); realWorldToArea = new Dictionary<RealWorldPoint, AreaPoint>(); KinectSpace = new List<BeamerPoint>[640,480]; try { beamerWindow = new BeamerWindow(); kinect = new Kinect.Kinect(); } catch (Exception ex) { // TODO Exception Handling } }
public Dictionary<BeamerPoint, KinectPoint> CalibrateBeamerToKinect(IBeamerWindow beamerWindow, IKinect kinect) { var beamerToKinect = new Dictionary<BeamerPoint, KinectPoint>(); var kinectPoints = kinect.CreateKinectPointArray(); for (var i = 0; i < CALIBRATION_POINTS; i++) { var beamerPoint = beamerWindow.DisplayCalibrationImageEdge(true, i); Thread.Sleep(KinectBeamerCalibration.THREAD_SLEEP); var picture1 = kinect.GetColorImage(); Thread.Sleep(KinectBeamerCalibration.THREAD_SLEEP); beamerWindow.DisplayCalibrationImageEdge(false, i); Thread.Sleep(KinectBeamerCalibration.THREAD_SLEEP); var picture2 = kinect.GetColorImage(); var diffKinectPoints = kinect.GetDifferenceImage(picture1, picture2, KinectBeamerCalibration.THRESHOLD); //TODO Refactoring var initPoints = new List<Vector2D>() { new Vector2D { X = 0, Y = 0 } }; var centroids = KMeans.DoKMeans(KinectPointArrayHelper.ExtractBlackPointsAs2dVector(diffKinectPoints), initPoints); var kinectPoint = kinectPoints[(int)centroids[0].X, (int)centroids[0].Y]; beamerToKinect.Add(beamerPoint, kinectPoint); var name = ""; switch (i + 1) { case 1: name = "A"; break; case 2: name = "B"; break; case 3: name = "C"; break; case 4: name = "D"; break; } Calibration.Points.Add(new Point { Name = name, BeamerPoint = beamerPoint, KinectPoint = kinectPoint }); } return beamerToKinect; }
public KinectBeamerOperation() { CalculateAreaDimensions(); area = new AreaPoint[areaWidth, areaHeight]; try { beamerWindow = new BeamerWindow(); kinect = new Kinect.Kinect(); } catch (Exception ex) { // TODO Exception Handling } beamerWindow.DisplayBlank(); Thread.Sleep(KinectBeamerCalibration.THREAD_SLEEP); blankImage = kinect.GetColorImage(); kinectPoints = kinect.CreateKinectPointArray(); }
public GestureProcessor(IKinect kinectHandler, KinectData kinect) { _pointer = new ObjectPointer(); Log.Debug("objectPointer loaded"); _pointer.SetObjects(FileLoader.LoadObj("livingRoom.obj", FileLoader.Units.cm)); Log.Debug("objects loaded"); _kinectHandler = kinectHandler; _kinect = kinect; _seqCoords = new ArrayList(); if (kinect != null) { kinect.attachSkeletonHandler(SkeletonDataReadyHandler); } _dtw = new DtwGestureRecognizer(12, 0.6, 2, 2, 10); Skeleton2DDataExtract.Skeleton2DdataCoordReady += NuiSkeleton2DdataCoordReady; _pointer.ContextSelected += PointerContextSelected; }
Boolean IDevice.Init() { LoadLogger(); Log.Info("Starting Kinect automation environment..."); _kinect = new KinectData(0); _kHandler = new KinectHandler(_kinect, this); _kHandler.Init(); if(_kinect.GetSensor() == null) { Log.Error("Kinect could not be instantiated. Terminating."); return false; } return true; }
private void RunSimpleStrategy(IBeamerWindow beamerWindow, IKinect kinect) { var simpleStrategy = new CalibrateEdgePoints(); simpleStrategy.CalibrateBeamerToKinect(beamerWindow, kinect); var edgePoints = Calibration.GetEdgePoints(); pointA = edgePoints.Find((e) => e.Name == "A"); pointB = edgePoints.Find((e) => e.Name == "B"); pointC = edgePoints.Find((e) => e.Name == "C"); pointD = edgePoints.Find((e) => e.Name == "D"); }
public KinectWrapper(IKinect kinect) { _kinect = kinect; _kinect.NewData += new NewDataEventHandler(newKinectData); }