diff --git a/extensions/chaeo/conf/testing.py b/extensions/chaeo/conf/testing.py index 7a6b6953b8877c621b65e8e4ac54d375fe7cb9fe..81a0ba82d42dfdcbd950acdab6f72d71b7b54bc9 100644 --- a/extensions/chaeo/conf/testing.py +++ b/extensions/chaeo/conf/testing.py @@ -13,3 +13,10 @@ multichannel_zstack = { pixel_classifier = { 'path': root / 'ilastik' / 'AF405-bodies_boundaries.ilp' } + +pipeline_params = { + 'threshold': 0.6, +} + +output_path = root / 'testing_output' / 'chaeo' +output_path.mkdir(parents=True, exist_ok=True) \ No newline at end of file diff --git a/extensions/chaeo/test_zstack.py b/extensions/chaeo/test_zstack.py index 3a517907dcc1e0e344df3eeffe57f035f3da0c1b..dd4f279b0bb2e3ec1777ec685126859ed13db09e 100644 --- a/extensions/chaeo/test_zstack.py +++ b/extensions/chaeo/test_zstack.py @@ -1,8 +1,10 @@ import unittest -from extensions.chaeo.conf.testing import multichannel_zstack, pixel_classifier +from conf.testing import output_path + +from extensions.chaeo.conf.testing import multichannel_zstack, pixel_classifier, pipeline_params from extensions.chaeo.zstack import build_stack_mask -from model_server.accessors import generate_file_accessor, InMemoryDataAccessor +from model_server.accessors import generate_file_accessor, InMemoryDataAccessor, write_accessor_data_to_file from extensions.ilastik.models import IlastikObjectClassifierModel, IlastikPixelClassifierModel class TestZStackDerivedDataProducts(unittest.TestCase): @@ -12,11 +14,14 @@ class TestZStackDerivedDataProducts(unittest.TestCase): self.zstack = generate_file_accessor(multichannel_zstack['path']) pxmodel = IlastikPixelClassifierModel( - project_file=pixel_classifier['path'] + {'project_file': pixel_classifier['path']}, ) - self.pxmap = None - self.obmap = None - self.stack = None + mip = InMemoryDataAccessor(self.zstack.get_one_channel_data(channel=0).data.max(axis=-1, keepdims=True)) + self.pxmap, result = pxmodel.infer(mip) + + write_accessor_data_to_file(output_path / 'pxmap.tif', self.pxmap) + self.obmap = InMemoryDataAccessor((self.pxmap.data > pipeline_params['threshold']).astype('uint8')) + write_accessor_data_to_file(output_path / 'obmap.tif', self.obmap) def test_zmask_makes_correct_boxes(self): zmask, meta = build_stack_mask(