Esempio n. 1
0
        /// <summary>
        /// </summary>
        /// <param name="cloud"></param>
        /// <param name="detectionParameters"></param>
        /// <param name="mergingParameters"></param>
        /// <returns></returns>
        public IList <Tree> DetectPotentialTrees(Cloud cloud, DetectionParameters detectionParameters, MergingParameters mergingParameters)
        {
            var pointSets      = DetectTrunkPointSets(cloud, detectionParameters).SelectMany(group => group.PointSets).ToList();
            var pointSetGroup  = new PointSetGroup(pointSets);
            var potentialTrees = pointSetGroup.BuildTrees(mergingParameters);

            return(FilterTrees(potentialTrees, detectionParameters.TreeFilters));
        }
Esempio n. 2
0
        private static IList <Tree> Detect(PointSetGroup pointSetGroup)
        {
            var mergingParameters = new MergingParameters
            {
                MinimumRegressionGroupingDistance = 0.09,
                MaximumGroupingEmptyHeight        = 20,
                MinimumGroupingDistance           = 0.35,
            };
            var treeFilters = new List <ITreeFilter>
            {
                new TreeHeightFilter
                {
                    MinimalTreeHeight = 4
                }
            };
            var potentialTrees = pointSetGroup.BuildTrees(mergingParameters);

            return(FilterTrees(potentialTrees, treeFilters));
        }