Exemple #1
0
        public static void summarize(string guid)
        {
            string resultDir = DirectoryConstants.defaultTempDirectory + guid + "\\";
            string outputFile = resultDir + "resultSummary.txt";
            if (File.Exists(outputFile))
            {
                File.Delete(outputFile);
            }

            List<string> files = Directory.GetFiles(resultDir).ToList();
            SortedDictionary<double, SortedDictionary<double, SortedDictionary<double, SortedDictionary<double, string>>>> results = 
                new SortedDictionary<double, SortedDictionary<double, SortedDictionary<double, SortedDictionary<double, string>>>>();
            foreach(string file in files)
            {
                string filename = URIUtilities.filenameFromDirectoryNoExtension(file);
                string[] fields = filename.Split('_');
                double min = Convert.ToDouble(fields[1]);
                double max = Convert.ToDouble(fields[3]);
                double dev = Convert.ToDouble(fields[5]);
                double ratio = Convert.ToDouble(fields[7]);
                string content = File.ReadAllText(file).Replace("\n", String.Empty);
                if (!results.ContainsKey(min))
                {
                    results.Add(min, new SortedDictionary<double, SortedDictionary<double, SortedDictionary<double, string>>>());
                }
                if (!results[min].ContainsKey(max))
                {
                    results[min].Add(max, new SortedDictionary<double, SortedDictionary<double, string>>());
                }
                if (!results[min][max].ContainsKey(dev))
                {
                    results[min][max].Add(dev, new SortedDictionary<double, string>());
                }
                if (!results[min][max][dev].ContainsKey(ratio))
                {
                    results[min][max][dev].Add(ratio, filename + " " + content);
                }
            }

            List<string> contents = new List<string>();
            foreach( double m in results.Keys)
            {
                foreach (double n in results[m].Keys)
                {
                    foreach (double d in results[m][n].Keys)
                    {
                        foreach (double r in results[m][n][d].Keys)
                        {
                            contents.Add(results[m][n][d][r]);
                        }
                    }
                }
            }

            File.WriteAllLines(outputFile, contents.ToArray());
        }
        public static void LoadAnnotations()
        {
            string folder     = @"C:\research\dataset\PascalVOC\VOCtrainval_11-May-2012\VOCdevkit\VOC2012\SegmentationImages\";
            string annofolder = @"C:\research\dataset\PascalVOC\VOCtrainval_11-May-2012\VOCdevkit\VOC2012\Annotations\";

            SortedDictionary <string, SortedDictionary <string, int> > corr = new SortedDictionary <string, SortedDictionary <string, int> >();

            string[] files = Directory.GetFiles(folder);
            foreach (string file in files)
            {
                string        filename = URIUtilities.filenameFromDirectoryNoExtension(file);
                string        annofile = annofolder + filename + ".xml";
                XElement      anno     = XElement.Load(annofile);
                List <string> names    = (from el in anno.Descendants("name")
                                          select(string) el).ToList <string>();

                names.Sort();
                for (int i = 0; i < names.Count; i++)
                {
                    for (int j = 0; j < i; j++)
                    {
                        string name1 = names[i];
                        string name2 = names[j];
                        if (!corr.ContainsKey(name1))
                        {
                            corr.Add(name1, new SortedDictionary <string, int>());
                        }
                        if (!corr[name1].ContainsKey(name2))
                        {
                            corr[name1].Add(name2, 0);
                        }
                        corr[name1][name2]++;
                    }
                }
            }

            foreach (string k in corr.Keys)
            {
                string line = k + " ";
                foreach (string v in corr.Keys)
                {
                    if (corr[k].ContainsKey(v))
                    {
                        line += corr[k][v] + " ";
                    }
                    else
                    {
                        line += "0 ";
                    }
                }
                Console.WriteLine(line);
            }
        }