From 5da783101fc93f818ed07a8d3d970291b688ae4b Mon Sep 17 00:00:00 2001 From: "Olivier J.N. Bertrand" <olivier.bertrand@uni-bielefeld.de> Date: Mon, 17 Sep 2018 14:40:44 +0200 Subject: [PATCH] Add more infos in log, and remove tmp file after loading image --- navipy/sensors/renderer.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/navipy/sensors/renderer.py b/navipy/sensors/renderer.py index f740876..cd7d153 100644 --- a/navipy/sensors/renderer.py +++ b/navipy/sensors/renderer.py @@ -119,6 +119,7 @@ class AbstractRender(): distance[distance > self.worldlimit] = self.worldlimit scene[..., -1] = distance if mode == 'database': + self._logger.info('Write image') dataloger.write_image(posorient, scene) elif mode == 'array': if imformat == '.npy': @@ -493,13 +494,14 @@ class BlenderRender(AbstractRender): self.tmp_fileoutput['ext']) im_width, im_height = self.camera_resolution im = bpy.data.images.load(filename) - # remote image once we read it. To avoid storing all images - self._logger.debug('Delete file {}'.format(filename)) - os.remove(filename) - pixels = np.array(im.pixels) + pixels = np.array(im.pixels).copy() pixels = pixels.reshape([im_height, im_width, -1]) # The last channel is the alpha channel pixels = pixels[..., :(pixels.shape[2] - 1)] + self._logger.debug('Image -> Ok') + # remote image once we read it. To avoid storing all images + self._logger.debug('Delete file {}'.format(filename)) + os.remove(filename) return pixels @property @@ -525,12 +527,16 @@ class BlenderRender(AbstractRender): self.tmp_fileoutput['ext']) im_width, im_height = self.camera_resolution im = bpy.data.images.load(filename) - # remote image once we read it. To avoid storing all images - # somehow failing os.remove(filename) - distance = np.array(im.pixels) + distance = np.array(im.pixels).copy() + self._logger.debug('Reshape {}->{}'.format( + distance.shape, self.camera_resolution)) distance = distance.reshape([im_height, im_width, -1]) # Distance are channel independent distance = distance[:, :, 0] + self._logger.debug('Distance -> Ok') + # remote image once we read it. To avoid storing all images + self._logger.debug('Delete file {}'.format(filename)) + os.remove(filename) return distance[..., np.newaxis] def update(self, posorient): @@ -560,6 +566,7 @@ class BlenderRender(AbstractRender): specified by scene.camera.rotation_mode :type posorient: pandas Series with multi-index """ + self._logger.info('update posorient to {}'.format(posorient)) if isinstance(posorient, pd.Series): # set frame cframe = int(posorient.name) @@ -614,6 +621,7 @@ class BlenderRender(AbstractRender): is the distance. :rtype: a double numpy array """ + self._logger.info('get a scene') self.update(posorient) toreturn = np.concatenate((self.image, self.distance), axis=2) @@ -627,4 +635,5 @@ is the distance. toreturn[np.isinf(cim) == 1] = cmax if ninffound > 0: warnings.warn('{} Inf found in image'.format(ninffound)) + self._logger.info('Scene -> Ok') return toreturn[..., np.newaxis] -- GitLab