From 92b160026883c696f8a1a1a447d639a70c20606d Mon Sep 17 00:00:00 2001
From: Raffaele Gaetano <raffaele.gaetano@cirad.fr>
Date: Tue, 4 Jul 2023 17:48:51 +0200
Subject: [PATCH] FIX: bad output size when retrieving reference object layer
 tile.

---
 OBIA/OBIABase.py | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/OBIA/OBIABase.py b/OBIA/OBIABase.py
index 48d8889..90abe47 100644
--- a/OBIA/OBIABase.py
+++ b/OBIA/OBIABase.py
@@ -174,11 +174,14 @@ class OBIABase:
             tile_obj = np.squeeze(clip_obj['array']).astype(np.uint32)
         else:
             assert (self.ref_obj_layer_pipe is not None)
-            self.ref_obj_layer_pipe[-1].PropagateRequestedRegion('out', r)
-            tile_obj = self.ref_obj_layer_pipe[-1].GetImageAsNumpyArray('out').astype(np.uint32)
-
-            #tile_obj = self.ref_obj_layer[r['index'][1]:r['index'][1]+r['size'][1],
-            #           r['index'][0]:r['index'][0]+r['size'][0]]
+            tmp_er = otb.Registry.CreateApplication('ExtractROI')
+            tmp_er.SetParameterInputImage('in', self.ref_obj_layer_pipe[-1].GetParameterOutputImage('out'))
+            tmp_er.SetParameterInt('startx', r['index'][0])
+            tmp_er.SetParameterInt('starty', r['index'][1])
+            tmp_er.SetParameterInt('sizex', r['size'][0])
+            tmp_er.SetParameterInt('sizey', r['size'][1])
+            tmp_er.Execute()
+            tile_obj = tmp_er.GetImageAsNumpyArray('out').astype(np.uint32)
 
         si = otb.Registry.CreateApplication('Superimpose')
         si.SetParameterString('inm', input_image)
-- 
GitLab