From a251cab0f312f5037ac7c0ecae91d1c906d08e80 Mon Sep 17 00:00:00 2001
From: Christopher Rhodes <christopher.rhodes@embl.de>
Date: Thu, 28 Sep 2023 14:24:08 +0200
Subject: [PATCH] Basic support for bool data

---
 model_server/accessors.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/model_server/accessors.py b/model_server/accessors.py
index ae5355f0..d9211c48 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
-- 
GitLab