示例#1
0
        public void VisualizeResults()
        {
            foreach (var path in Directory.GetFiles(Path.Combine(OutputPath, "predicted"), "*.npy"))
            {
                var info      = new FileInfo(path);
                var predicted = np.load(info.FullName).AsGeneric <float>();
                using (var stream = File.Create(Path.Combine(OutputPath, "Predicted", info.Name.Replace(".npy", ".png"))))
                {
                    new ImageConverter().ToPng(predicted, stream, HeightToGrayscale.Unit8());
                }

                var original = np.load(Path.Combine(OutputPath, "test_y", info.Name)).AsGeneric <float>();
            }
        }
示例#2
0
        public void ExtractTrainingData()
        {
            int count = 0;

            foreach (var fullCode in TileCodes)
            {
                var full      = np.load(Path.Combine(OutputPath, $"{fullCode}.npy")).AsGeneric <float>();
                var fullRange = full.Range();
                foreach (var tile in GetYTiles(full))
                {
                    var tileRange = tile.Range();
                    if (count % 11 < 2 && tileRange.Delta > 1)
                    {
                        // Don't use tiles with a very small range
                        var set   = count % 7 == 0 ? "test" : "train";
                        var range = count % 2 == 0 ? fullRange : tileRange;

                        Normalize(tile, range);


                        np.save(Path.Combine(OutputPath, $"{set}_y", $"sample-{count:00000}.npy"), tile);
                        using (var stream = File.Create(Path.Combine(OutputPath, $"{set}_y", $"sample-{count:00000}.png")))
                        {
                            new ImageConverter().ToPng(tile, stream, HeightToGrayscale.Unit8());
                        }

                        var x =
                            tile
                            .Downscale(Scale);
                        if (count % 4 < 2)
                        {
                            Downsample(x, 255);
                        }
                        else
                        {
                            Downsample(x, 65535);
                        }

                        np.save(Path.Combine(OutputPath, $"{set}_x", $"sample-{count:00000}.npy"), x);
                        using (var stream = File.Create(Path.Combine(OutputPath, $"{set}_x", $"sample-{count:00000}.png")))
                        {
                            new ImageConverter().ToPng(x, stream, HeightToGrayscale.Unit8());
                        }
                    }
                    count++;
                }
            }
        }