public Dictionary<BeamerPoint, KinectPoint> CalibrateBeamerToKinect(IBeamerWindow beamerWindow, IKinect kinect) { RunSimpleStrategy(beamerWindow, kinect); CalculateNewPoints(); return new Dictionary<BeamerPoint, KinectPoint>(); //TODO Implement //throw new NotImplementedException(); }
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(); }
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"); }