public KMeansClusterFactory(ClusterDataSourceSettings settings, IClusterMergeStrategy mergeStrategy, IntSize size) { this.settings = settings; this.mergeStrategy = mergeStrategy; this.algorithm = new KMeans(this.settings.ClusterCount, settings.DepthRange, size); this.value = new ClusterCollection(); }
public IClusterDataSource CreateClusterDataSource(ClusterDataSourceSettings clusterDataSourceSettings) { var size = new IntSize(this.Adapter.DepthStreamWidth, this.Adapter.DepthStreamHeight); var clusterFactory = new KMeansClusterFactory(clusterDataSourceSettings, size); var filter = new ImageFrameDepthPointFilter(this.Adapter, size, clusterDataSourceSettings.MinimumDepthThreshold, clusterDataSourceSettings.MaximumDepthThreshold, clusterDataSourceSettings.LowerBorder); return new SDKClusterDataSource(this.Adapter, clusterFactory, filter); }
public static void SetToDefault(ClusterDataSourceSettings settings) { settings.MinimalPointsForClustering = 50; settings.MinimalPointsForValidCluster = 10; settings.MaximalPointsForValidCluster = 1000; settings.PointModulo = 5; settings.LowerBorder = 75; settings.MinimumDepthThreshold = 500; settings.MaximumDepthThreshold = 800; settings.ClusterCount = 2; settings.MergeMinimumDistanceToCluster = 50; settings.MergeMaximumClusterCenterDistances = 120; settings.MergeMaximumClusterCenterDistances2D = 100; settings.MaximumClusterDepth = 150; }
public KMeansClusterFactory(ClusterDataSourceSettings settings, IntSize size) : this(settings, new DefaultMergeStrategy(settings), size) { }
public DefaultMergeStrategy(ClusterDataSourceSettings settings) { this.settings = settings; }
public IShapeDataSource CreateShapeDataSource(ClusterDataSourceSettings clusterDataSourceSettings, ShapeDataSourceSettings shapeDataSourceSettings) { return new ClusterShapeDataSource(this.CreateClusterDataSource(clusterDataSourceSettings), shapeDataSourceSettings); }