Exemplo n.º 1
0
        public void Run(Sketch originalSketch)
        {
            //
            Sketch     transformedSketch = Normalize(originalSketch);
            SketchPair input             = new SketchPair(originalSketch, transformedSketch);

            //
            List <Tuple <string, double> > results = new List <Tuple <string, double> >();

            foreach (SketchPair template in myTemplates)
            {
                double distance1 = SketchTools.Distance(input.Transformed, template.Transformed);
                double distance2 = SketchTools.Distance(input.Transformed, template.Transformed);
                double distance  = ToScore(Math.Min(distance1, distance2));

                results.Add(new Tuple <string, double>(template.Transformed.Label, distance));
            }
            results.Sort((x, y) => y.Item2.CompareTo(x.Item2));

            //
            myLabels = new List <string>();
            myScores = new List <double>();
            for (int i = 0; i < results.Count; ++i)
            {
                string label = results[i].Item1;
                double score = results[i].Item2;

                myLabels.Add(label);
                myScores.Add(score);
            }
        }
Exemplo n.º 2
0
        private Sketch Normalize(Sketch original)
        {
            Sketch sketch = SketchTools.Clone(original);

            sketch = SketchTransformation.Resample(sketch, N);
            sketch = SketchTransformation.ScaleSquare(sketch, Size);
            sketch = SketchTransformation.TranslateCentroid(sketch, K);

            return(sketch);
        }
Exemplo n.º 3
0
        private async Task <List <Sketch> > ReadXml(string relativePath)
        {
            // initialize the list of sketches and path
            string root = Package.Current.InstalledLocation.Path;
            string path = root + relativePath;

            // get the list of files
            StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(path);

            List <Sketch> sketches = new List <Sketch>();

            foreach (StorageFile file in await folder.GetFilesAsync())
            {
                // case: file is an XML file
                if (file.Name.EndsWith(".xml"))
                {
                    Sketch sketch = await SketchTools.XmlToSketch(file, PEN_DRAWING_ATTRIBUTES);

                    sketches.Add(sketch);
                }
            }

            return(sketches);
        }