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>(); } }
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++; } } }