From a9d566fefd12aec3d1b24197040fab771cc71ab0 Mon Sep 17 00:00:00 2001 From: "Daniel.Frisinghelli" <daniel.frisinghelli@eurac.edu> Date: Thu, 20 Aug 2020 16:16:46 +0200 Subject: [PATCH] Refactored reconstruct_scene: removed redundant keyword arguments --- pysegcnn/core/predict.py | 9 +++------ pysegcnn/core/utils.py | 27 +++++++++++++-------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/pysegcnn/core/predict.py b/pysegcnn/core/predict.py index 6403a7a..ff7455e 100644 --- a/pysegcnn/core/predict.py +++ b/pysegcnn/core/predict.py @@ -245,9 +245,6 @@ def predict_scenes(ds, model, scene_id=None, cm=False, plot=False, **kwargs): # the name of the selected scene scene_ids = [scene_id] - # spatial size of scene - scene_size = (ds.dataset.height, ds.dataset.width) - # iterate over the scenes LOGGER.info('Predicting scenes of the {} dataset ...'.format(ds.name)) output = {} @@ -284,9 +281,9 @@ def predict_scenes(ds, model, scene_id=None, cm=False, plot=False, **kwargs): conf_mat[ytrue.long(), ypred.long()] += 1 # reconstruct the entire scene - inputs = reconstruct_scene(inp, scene_size, nbands=inp.shape[1]) - labels = reconstruct_scene(lab, scene_size, nbands=1) - prdtcn = reconstruct_scene(prd, scene_size, nbands=1) + inputs = reconstruct_scene(inp) + labels = reconstruct_scene(lab) + prdtcn = reconstruct_scene(prd) # print progress LOGGER.info('Scene {:d}/{:d}, Id: {}, Accuracy: {:.2f}'.format( diff --git a/pysegcnn/core/utils.py b/pysegcnn/core/utils.py index 59d08f9..1729a4a 100644 --- a/pysegcnn/core/utils.py +++ b/pysegcnn/core/utils.py @@ -398,19 +398,14 @@ def tile_topleft_corner(img_size, tile_size): return indices -def reconstruct_scene(tiles, img_size, tile_size=None, nbands=1): +def reconstruct_scene(tiles): """Reconstruct a tiled image. Parameters ---------- - tiles : array_like - The tiled image, shape=(tiles, bands, tile_size, tile_size). - img_size : `tuple` - The size of the reconstructed image (height, width). - tile_size : `int` or `None`, optional - The size of the tile. The default is None. - nbands : `int`, optional - The number of bands of the reconstructed image. The default is 1. + tiles : `torch.Tensor` or `numpy.ndarray` + The tiled image, shape=(tiles, bands, tile_size, tile_size) or + shape=(tiles, tile_size, tile_size). Returns ------- @@ -422,11 +417,15 @@ def reconstruct_scene(tiles, img_size, tile_size=None, nbands=1): tiles = np.asarray(tiles) # check the size - if tile_size is None: - if tiles.ndim > 3: - tile_size = tiles.shape[2] - else: - tile_size = tiles.shape[1] + if tiles.ndim > 3: + nbands = tiles.shape[1] + tile_size = tiles.shape[2] + else: + nbands = 1 + tile_size = tiles.shape[1] + + # calculate image size + img_size = 2 * (int(np.sqrt(tiles.shape[0]) * tile_size),) # calculate the topleft corners of the tiles topleft = tile_topleft_corner(img_size, tile_size) -- GitLab