Beispiel #1
0
        public static async void CreateHistogramAndWriteThemToFiles(string rootFolder, string fileName)
        {
            var appFolder = await KnownFolders.PicturesLibrary.GetFolderAsync(rootFolder);

            string leafTypeMaxPoints = Folders.Names.Length + Environment.NewLine;

            foreach (var folderName in Folders.Names)
            {
                var leafTypeFolder = await appFolder.GetFolderAsync(folderName);

                var leafStorageFiles = await leafTypeFolder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByDate);

                foreach (var storageFile in leafStorageFiles)
                {
                    var image     = new Image(await ImageIO.LoadSoftwareBitmapFromFile(storageFile));
                    var histogram = image
                                    .GaussianFilter()
                                    .ComputeGradient()
                                    .DeleteSquare()
                                    .HistogramOfOrientedGradients(240, 13)
                                    .Normalize();

                    leafTypeMaxPoints += folderName.ToString();
                    foreach (var value in histogram)
                    {
                        leafTypeMaxPoints += " " + value;
                    }
                    leafTypeMaxPoints += Environment.NewLine;
                }
            }
            DataManager.WriteToFile(leafTypeMaxPoints, appFolder, fileName);
        }
Beispiel #2
0
        public static async void CreateSubfoldersAndHough(string rootFolder)
        {
            string leafTypeMaxPoints = string.Empty;
            var    appFolder         = await KnownFolders.PicturesLibrary.GetFolderAsync(rootFolder);

            foreach (var folderName in Folders.Names)
            {
                var leafTypeFolder = await appFolder.GetFolderAsync(folderName);

                var leafStorageFiles = await leafTypeFolder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByDate);

                var gray = await leafTypeFolder.CreateFolderAsync("Grayscale");

                var filtered = await leafTypeFolder.CreateFolderAsync("GaussianFilter");

                var Gradient = await leafTypeFolder.CreateFolderAsync("Gradient");

                var HOG = await leafTypeFolder.CreateFolderAsync("HOG");

                foreach (var storageFile in leafStorageFiles)
                {
                    var image = new Image(await ImageIO.LoadSoftwareBitmapFromFile(storageFile));
                    ImageIO.WriteToFile(gray, "leaf", image.SoftwareBitmap);

                    image.GaussianFilter();
                    ImageIO.WriteToFile(filtered, "leaf", image.SoftwareBitmap);

                    image.ComputeGradient();
                    ImageIO.WriteToFile(Gradient, "leaf", image.SoftwareBitmap);

                    image.DrawHistogramOfOrientedGradients(240, 9);
                    ImageIO.WriteToFile(HOG, "leaf", image.SoftwareBitmap);
                }
            }
        }
Beispiel #3
0
        private async void Open_Photo(object sender, RoutedEventArgs e)
        {
            Image image        = new Image(await ImageIO.LoadSoftwareBitmapFromFile());
            var   bitmapSource = new SoftwareBitmapSource();

            editPreview.Source = bitmapSource;
            await ComputeHistogramWithDisplay(image, bitmapSource, TimeSpan.FromMilliseconds(1000));
        }
Beispiel #4
0
        public static async void WriteToFile(IStorageFolder folder, string fileName, SoftwareBitmap bitmap)
        {
            var file = await folder.CreateFileAsync(fileName + ".bmp", CreationCollisionOption.GenerateUniqueName);

            await ImageIO.SaveSoftwareBitmapToFile(bitmap, file);
        }