Commit 83b65337 authored by Gaetano Raffaele's avatar Gaetano Raffaele
Browse files

ENH: tiled vectorization (needs full segmentation in memory).

No related merge requests found
Showing with 7 additions and 4 deletions
+7 -4
......@@ -207,11 +207,11 @@ def vectorize_tile(obj, region, to_keep, out):
def tiled_vectorization(input_segm, nominal_tile_size, output_template):
in_seg = to_otb_pipeline(input_segm)
arr = np.squeeze(in_seg.ExportImage('out')['array']).astype(np.uint32)
rp = regionprops(arr)
full = in_seg.GetImageAsNumpyArray('out')
rp = regionprops(np.squeeze(full.astype(np.uint32)))
tx, ty = int(arr.shape[1] / nominal_tile_size[0]) + 1, int(arr.shape[0] / nominal_tile_size[1]) + 1
arr = None
W, H = in_seg.GetImageSize('out')
tx, ty = int(W / nominal_tile_size[0]) + 1, int(H / nominal_tile_size[1]) + 1
obj_to_tile = dict.fromkeys(range(tx*ty))
tiles = dict.fromkeys(range(tx*ty))
......@@ -225,6 +225,9 @@ def tiled_vectorization(input_segm, nominal_tile_size, output_template):
obj_to_tile[idx].append(o.label)
tiles[idx][0] = min(o.bbox[1], tiles[idx][0])
tiles[idx][1] = min(o.bbox[0], tiles[idx][1])
for o in rp:
ix, iy = int(o.bbox[1] / nominal_tile_size[0]), int(o.bbox[0] / nominal_tile_size[1])
idx = ix * ty + iy
tiles[idx][2] = max(o.bbox[3] - tiles[idx][0], tiles[idx][2])
tiles[idx][3] = max(o.bbox[2] - tiles[idx][1], tiles[idx][3])
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment