public PlaneTrackingCompleteData Track(InputData inputData) { var planeData = new PlaneTrackingCompleteData(inputData); if (planeData.UserParameters.VisualisationType == VisualisationType.RawRGB) { planeData.ResultData.VisualisationBitmap = ReturnColorBitmap(planeData.KinectData.ColorFrameData); } planeData.PlaneData.CannyDepthData = CannyAppliedToDepthData(planeData.KinectData.CameraSpacePointsFromDepthData); planeData.PlaneData.MaskOfTable = LocalizedTableMask; planeData.PlaneData.ColorBitmap = ReturnColorBitmap(planeData.KinectData.ColorFrameData); var colorImg = ReturnColorImageOfTable(LocalizedTableMask, planeData.KinectData.ColorFrameData, planeData.KinectData.PointsFromColorToDepth); planeData.PlaneData.MaskedColorImageOfTable = colorImg; //planeData.MaskedColorImageOfTable._EqualizeHist(); // TODO zjisitit jestli to pomáhá při stabilizaci osvětlení if (planeData.UserParameters.VisualisationType == VisualisationType.MaskedColorImageOfTable) { planeData.ResultData.VisualisationBitmap = colorImg.Bitmap; } return(planeData); }
public ChessboardTrackingCompleteData Calibrate(PlaneTrackingCompleteData planeData, BlockingCollection <Message> outputQueue) { var chessboardData = new ChessboardTrackingCompleteData(planeData); SceneCalibrationSnapshot snapshot; (BoardReprezentation, snapshot) = ChessboardAlgorithm.LocateChessboard(chessboardData); outputQueue.Add(new SceneCalibrationSnapshotMessage(snapshot)); RotationAlgorithm.Rotate(BoardReprezentation, chessboardData.KinectData.CameraSpacePointsFromDepthData); return(chessboardData); }
public ChessboardTrackingCompleteData Track(PlaneTrackingCompleteData planeData) { var chessboardData = new ChessboardTrackingCompleteData(planeData); RotationAlgorithm.Rotate(BoardReprezentation, chessboardData.KinectData.CameraSpacePointsFromDepthData); chessboardData.ChessboardData.FieldSize = BoardReprezentation.FieldVector1.Magnitude(); if (chessboardData.UserParameters.VisualisationType == VisualisationType.HighlightedChessboard) { chessboardData.ResultData.VisualisationBitmap = Renderer.ReturnLocalizedChessboardWithTable( chessboardData.PlaneData.MaskedColorImageOfTable.Bitmap, chessboardData.PlaneData.MaskOfTable, chessboardData.KinectData.PointsFromColorToDepth, chessboardData.KinectData.CameraSpacePointsFromDepthData, BoardReprezentation.FieldVector1.Magnitude()); } return(chessboardData); }
public PlaneTrackingCompleteData Calibrate(InputData inputData) { var planeData = new PlaneTrackingCompleteData(inputData); Data data = new Data(planeData.KinectData.CameraSpacePointsFromDepthData); data.CutOffMinMaxDepth(PlaneLocalizationConfig.MinDepth, PlaneLocalizationConfig.MaxDepth); data.Ransac(); data.LargestTableArea(); data.LinearRegression(); data.LargestTableArea(); data.LinearRegression(); data.LargestTableArea(); data.LinearRegression(); data.LargestTableArea(); data.RotationTo2DModified(); LocalizedTableMask = data.ConvexHullAlgorithm(); var colorImg = ReturnColorImageOfTable(LocalizedTableMask, planeData.KinectData.ColorFrameData, planeData.KinectData.PointsFromColorToDepth); planeData.PlaneData.MaskedColorImageOfTable = colorImg; return(planeData); }