diff --git a/model_server/accessors.py b/model_server/accessors.py index ae5355f00d95ca19fdb44d6f78154d6715686b00..d9211c4876c21e24ac4330af4de5806193a215a5 100644 --- a/model_server/accessors.py +++ b/model_server/accessors.py @@ -32,6 +32,9 @@ class GenericImageDataAccessor(ABC): def is_3d(self): return True if self.shape_dict['Z'] > 1 else False + def is_mask(self): + return self._data.dtype == 'bool' + def get_one_channel_data (self, channel: int): c = int(channel) return InMemoryDataAccessor(self.data[:, :, c:(c+1), :]) @@ -133,7 +136,10 @@ def write_accessor_data_to_file(fpath: Path, accessor: GenericImageDataAccessor) [3, 2, 0, 1], [0, 1, 2, 3] ) - tifffile.imwrite(fpath, zcyx, imagej=True) + if accessor.is_mask(): + tifffile.imwrite(fpath, zcyx.astype('uint8'), imagej=True) + else: + tifffile.imwrite(fpath, zcyx, imagej=True) except: raise FileWriteError(f'Unable to write data to file') return True