예제 #1
0
 public void TestDefaultBuilderTrivial0(IMaxTreeBuilder <int> builder)
 {
     int[] data = new int[] { 0, 0, 0, 0 };
     IImageRaster2D <int> image    = new ImageRaster2D <int>(2, 2, data, false);
     ITopologyElement     topology = new TopologyElementRaster2D4Connectivity(image.Raster);
     IMaxTree <int>       maxtree  = builder.BuildMaxTree(data, new ComparerNatural <int>(), topology, data.Length);
 }
예제 #2
0
 public MaxTreeAutoDual(IAlgebraReal <ElementType> algebra, IMaxTreeBuilder <ElementType> builder, ITopologyElement topology, ElementType[] element_values)
 {
     this.algebra        = algebra;
     this.max_tree       = builder.BuildMaxTree(element_values, new ComparerNatural <ElementType>(), topology, element_values.Length);
     this.min_tree       = builder.BuildMaxTree(element_values, new ComparerNatural <ElementType>(true), topology, element_values.Length);
     this.element_values = ToolsCollection.Copy(element_values);
 }
예제 #3
0
        public void TestDefaultBuilderTrivial4(IMaxTreeBuilder <int> builder)
        {
            int[] data = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            IImageRaster3D <int> image    = new ImageRaster3D <int>(3, 3, 1, data, false);
            ITopologyElement     topology = new TopologyElementRaster3D6Connectivity(image.Raster);
            IMaxTree <int>       maxtree  = builder.BuildMaxTree(data, new ComparerNatural <int>(), topology, data.Length);

            maxtree.GetDisplayValues();
        }
예제 #4
0
        public void TestDefaultBuilderVeryBig(IMaxTreeBuilder <int> builder)
        {
            Random random = new Random(0);

            int[] data = new int[512 * 512 * 10];
            for (int index = 1; index < data.Length; index++)
            {
                data[index] = (int)(random.NextDouble() * 100.0);
            }
            IImageRaster3D <int> image    = new ImageRaster3D <int>(512, 512, 10, data, false);
            ITopologyElement     topology = new TopologyElementRaster3D6Connectivity(image.Raster);
            IMaxTree <int>       maxtree  = builder.BuildMaxTree(data, new ComparerNatural <int>(), topology, data.Length);
        }
예제 #5
0
        public void TestDefaultBuilderTrivial3(IMaxTreeBuilder <int> builder)
        {
            int[] data = new int[] { 1, 2, 2, 0, 2, 1 };
            IImageRaster2D <int> image    = new ImageRaster2D <int>(2, 3, data, false);
            ITopologyElement     topology = new TopologyElementRaster2D4Connectivity(image.Raster);
            IMaxTree <int>       maxtree  = builder.BuildMaxTree(data, new ComparerNatural <int>(), topology, data.Length);

            int[] element_indexes_0 = maxtree.GetFullElementsIndexesOfElementLevelAndAbove(1);
            Assert.AreEqual(1, element_indexes_0.Length);
            int[] element_indexes_1 = maxtree.GetFullElementsIndexesOfElementLevelAndAbove(4);
            Assert.AreEqual(2, element_indexes_1.Length);
            int[] element_indexes_2 = maxtree.GetFullElementsIndexesOfElementLevelAndAbove(0);
            Assert.AreEqual(5, element_indexes_2.Length);
            int[] element_indexes_3 = maxtree.GetFullElementsIndexesOfElementLevelAndAbove(3);
            Assert.AreEqual(6, element_indexes_3.Length);
        }
예제 #6
0
        public void TestDefaultBuilderBig(IMaxTreeBuilder <int> builder)
        {
            Random random = new Random(0);

            int[] data = new int [512 * 512];
            for (int index = 1; index < data.Length; index++)
            {
                data[index] = (int)(random.NextDouble() * 100.0);
            }
            IImageRaster2D <int> image    = new ImageRaster2D <int>(512, 512, data, false);
            ITopologyElement     topology = new TopologyElementRaster2D4Connectivity(image.Raster);
            IMaxTree <int>       maxtree  = builder.BuildMaxTree(data, new ComparerNatural <int>(), topology, data.Length);

            maxtree.GetFullElementsIndexesOfElementLevelAndAbove(0);
            maxtree.GetFullElementsIndexesOfElementLevelAndAbove(500);
            maxtree.GetFullElementsIndexesOfElementLevelAndAbove(1800);
        }
 public AlphaPartitionTreeBuilderMinTree(IAlgebraReal <EdgeValueType> algebra, IMaxTreeBuilder <EdgeValueType> builder)
 {
     this.builder = builder;
     this.algebra = algebra;
 }