Exemple #1
0
        static void Main(string[] args)
        {
            string descriptorFile = args[0];
            string clusteringFile = args[1];
            string outputFile     = args[2];

            int        argumentOffset = 3;
            List <int> layersToExport = new List <int>();

            for (int i = argumentOffset; i < args.Length; i++)
            {
                layersToExport.Add(int.Parse(args[i]) - 1); // TODO: try-catch
            }

            ClusteringAgglomerative clustering = new ClusteringAgglomerative(LoadArrayDescriptors(descriptorFile, clusteringFile));

            clustering.Clusterize(layersToExport);

            foreach (Centroid[] layerCentroids in clustering.Centroids)
            {
                string filename = Path.GetFileNameWithoutExtension(outputFile) + "_" + layerCentroids.Length
                                  + Path.GetExtension(outputFile);

                WriteToTextFile(layerCentroids, filename);
            }
        }
        public void VisualizeAgglomerative()
        {
            int nDescriptors        = 100;
            int descriptorDimension = 2;
            int nDescriptorsDiv5    = nDescriptors / 5;

            Descriptor[]            descriptors = HelperTestClass.GenerateHierarchicalDescriptors(seed, nDescriptorsDiv5, descriptorDimension);
            ClusteringAgglomerative clustering  = new ClusteringAgglomerative(descriptors);

            clustering.Clusterize();
            HelperTestClass.TestDescriptorAssignment(descriptors.Length, clustering.Centroids[0]);
            HelperTestClass.VisualizeClustering(clustering.Descriptors, clustering.Centroids[23], windowSize, windowSize);
        }
Exemple #3
0
        static void Main(string[] args)
        {
            int seed       = 5334;
            int windowSize = 720;

            int nDescriptors        = 1000;
            int descriptorDimension = 2;
            int nClusters           = 100;
            int iterationCount      = 10;

            //int nDescriptors = 350000;
            //int descriptorDimension = 4096;
            //int nClusters = 25;// 128;
            //int iterationCount = 10;

            int nDescriptorsDiv5 = nDescriptors / 5;

            Descriptor[] descriptors = HelperTestClass.GenerateHierarchicalDescriptors(seed, nDescriptorsDiv5, descriptorDimension);

            //ClusteringSimple clustering = new ClusteringSimple(descriptors);
            //clustering.Clusterize(nClusters, iterationCount, seed);

            ClusteringAgglomerative clustering = new ClusteringAgglomerative(descriptors);

            //clustering.Clusterize(new List<int> { 0, 1, 3, 7, 15, 31, 63, 127, 255, 511 });
            clustering.Clusterize();

            //HelperTestClass.VisualizeClustering(clustering.Descriptors, clustering.Centroids[0], windowSize, windowSize);

            //for (int i = clustering.Centroids.Length - 1; i > 0; i--)
            //{
            //    HelperTestClass.VisualizeClustering(clustering.Descriptors, clustering.Centroids[i], windowSize, windowSize);
            //}

            HelperTestClass.SaveClustering(clustering.Descriptors, clustering.Centroids, windowSize, windowSize, "clustering");

            //int resolution = 20;
            //for (int i = clustering.Centroids.Length - 1; i > 0; i -= clustering.Centroids.Length / resolution)
            //{
            //    HelperTestClass.VisualizeClustering(clustering.Descriptors, clustering.Centroids[i], windowSize, windowSize);
            //}
        }