Beispiel #1
0
        public void Scribble(int x, int y, ConstraintType constraintType, int brushWidth)
        {
            if (CurrentNeuralProcess != null)
            {
                Interop.ConvergenceGap      = Constants.Parameters.GetFloat("MAX_CONVERGENCE_GAP");
                Interop.ConvergenceGapDelta = Constants.Parameters.GetFloat("MAX_CONVERGENCE_GAP_DELTA");

                switch (constraintType)
                {
                case ConstraintType.Foreground:
                    Interop.AddForegroundHardConstraint(
                        new Vector3(x, y, CurrentSlice),
                        new Vector3(mMousePreviousX, mMousePreviousY, CurrentSlice),
                        brushWidth,
                        HardConstraintMode.Scribble);
                    break;

                case ConstraintType.Background:
                    Interop.AddBackgroundHardConstraint(
                        new Vector3(x, y, CurrentSlice),
                        new Vector3(mMousePreviousX, mMousePreviousY, CurrentSlice),
                        brushWidth,
                        HardConstraintMode.Scribble);
                    break;

                default:
                    Release.Assert(false);
                    break;
                }

                mMousePreviousX = x;
                mMousePreviousY = y;
            }
        }
Beispiel #2
0
        public void InitializeConstraintMapAndSegmentationFromBreadcrumbs()
        {
            if (DatasetDescription.NeuralProcessDescriptions.Count > 0)
            {
                Release.Assert(CurrentNeuralProcess != null);

                var backgroundBreadcrumbs = from neuralProcessDescription in DatasetDescription.NeuralProcessDescriptions.Values
                                            from breadcrumb in neuralProcessDescription.BreadcrumbDescriptions
                                            where !neuralProcessDescription.Color.Equals(CurrentNeuralProcess.Color)
                                            select breadcrumb;


                backgroundBreadcrumbs.ToList().ForEach(
                    breadcrumb => Interop.AddBackgroundHardConstraint(breadcrumb.Position,
                                                                      Constants.MIN_BRUSH_WIDTH,
                                                                      HardConstraintMode.Breadcrumb));

                CurrentNeuralProcess.BreadcrumbDescriptions.ToList().ForEach(
                    breadcrumb => Interop.AddForegroundHardConstraint(breadcrumb.Position,
                                                                      Constants.MIN_BRUSH_WIDTH,
                                                                      HardConstraintMode.Breadcrumb));
            }
        }