# HG changeset patch # User imgteam # Date 1767449668 0 # Node ID 364e235bf378b98c3b68c26d779a17254f0a164f # Parent 7f8102bdbfa1db46a4a09e01ac47d886423adaf5 planemo upload for repository https://github.com/BMCV/galaxy-image-analysis/tree/master/tools/binary2labelimage/ commit f5a4de7535e433e3b0e96e0694e481b6643a54f8 diff -r 7f8102bdbfa1 -r 364e235bf378 2d_split_binaryimage_by_watershed.py --- a/2d_split_binaryimage_by_watershed.py Mon May 12 08:15:44 2025 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -import argparse -import sys - -import numpy as np -import skimage.io -import skimage.util -from scipy import ndimage as ndi -from skimage.feature import peak_local_max -from skimage.segmentation import watershed - - -if __name__ == "__main__": - parser = argparse.ArgumentParser(description='Split binaryimage by watershed') - parser.add_argument('input_file', type=argparse.FileType('r'), default=sys.stdin, help='input file') - parser.add_argument('out_file', type=argparse.FileType('w'), default=sys.stdin, help='out file (TIFF)') - parser.add_argument('min_distance', type=int, default=100, help='Minimum distance to next object') - args = parser.parse_args() - - img_in = skimage.io.imread(args.input_file.name) - distance = ndi.distance_transform_edt(img_in) - - local_max_indices = peak_local_max( - distance, - min_distance=args.min_distance, - labels=img_in, - ) - local_max_mask = np.zeros(img_in.shape, dtype=bool) - local_max_mask[tuple(local_max_indices.T)] = True - markers = ndi.label(local_max_mask)[0] - res = watershed(-distance, markers, mask=img_in) - - res = skimage.util.img_as_uint(res) - skimage.io.imsave(args.out_file.name, res, plugin="tifffile") diff -r 7f8102bdbfa1 -r 364e235bf378 binary2label.py --- a/binary2label.py Mon May 12 08:15:44 2025 +0000 +++ b/binary2label.py Sat Jan 03 14:14:28 2026 +0000 @@ -1,27 +1,70 @@ -import argparse +import giatools +import numpy as np +import scipy.ndimage as ndi + +# Fail early if an optional backend is not available +giatools.require_backend('omezarr') + -import giatools -import scipy.ndimage as ndi -import tifffile +def label_watershed(arr: np.ndarray, **kwargs) -> np.ndarray: + import skimage.util + from skimage.feature import peak_local_max + from skimage.segmentation import watershed + distance = ndi.distance_transform_edt(arr) + local_max_indices = peak_local_max( + distance, + labels=arr, + **kwargs, + ) + local_max_mask = np.zeros(arr.shape, dtype=bool) + local_max_mask[tuple(local_max_indices.T)] = True + markers = ndi.label(local_max_mask)[0] + res = watershed(-distance, markers, mask=arr) + return skimage.util.img_as_uint(res) # converts to uint16 -# Parse CLI parameters -parser = argparse.ArgumentParser() -parser.add_argument('input', type=str, help='input file') -parser.add_argument('output', type=str, help='output file (TIFF)') -args = parser.parse_args() +if __name__ == '__main__': + + tool = giatools.ToolBaseplate() + tool.add_input_image('input') + tool.add_output_image('output') + tool.parse_args() + + # Validate the input image and the selected method + try: + input_image = tool.args.input_images['input'] + if (method := tool.args.params.pop('method')) == 'watershed' and input_image.shape[input_image.axes.index('Z')] > 1: + raise ValueError(f'Method "{method}" is not applicable to 3-D images.') + + elif input_image.shape[input_image.axes.index('C')] > 1: + raise ValueError('Multi-channel images are forbidden to avoid confusion with multi-channel labels (e.g., RGB labels).') + + else: + + # Choose the requested labeling method + match method: -# Read the input image with the original axes -img = giatools.Image.read(args.input) -img = img.normalize_axes_like( - img.original_axes, -) + case 'cca': + joint_axes = 'ZYX' + label = lambda input_section_bin: ( # noqa: E731 + ndi.label(input_section_bin, **tool.args.params)[0].astype(np.uint16) + ) + + case 'watershed': + joint_axes = 'YX' + label = lambda input_section_bin: ( # noqa: E731 + label_watershed(input_section_bin, **tool.args.params) # already uint16 + ) -# Make sure the image is truly binary -img_arr_bin = (img.data > 0) + case _: + raise ValueError(f'Unknown method: "{method}"') -# Perform the labeling -img.data = ndi.label(img_arr_bin)[0] + # Perform the labeling + for section in tool.run(joint_axes): + section['output'] = label( + section['input'].data > 0, # ensure that the input data is truly binary + ) -# Write the result image (same axes as input image) -tifffile.imwrite(args.output, img.data, metadata=dict(axes=img.axes)) + # Exit and print error to stderr + except ValueError as err: + exit(err.args[0]) diff -r 7f8102bdbfa1 -r 364e235bf378 binary2label.xml --- a/binary2label.xml Mon May 12 08:15:44 2025 +0000 +++ b/binary2label.xml Sat Jan 03 14:14:28 2026 +0000 @@ -1,83 +1,209 @@ - + with giatools creators.xml - 0.6 + tests.xml + validators.xml + 0.7.3 0 + + + + + + + + operation_3443 galaxy_image_analysis + giatools - giatools - scipy + giatools + scipy + ome-zarr - - + + + - + + --output 'output.tiff' + --params '$params' + --verbose + + ]]> + + + - - - + + + - + + + + - + + - - - + + + - + + + + + + + + + - - - - + + + + - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - This tool assigns each object a unique label. + + **Converts a binary image to a label map.** - Individual objects are determined using connected component analysis, or distance transform and watershed. + This tool assigns each object a unique label. + + Individual objects are determined using connected component analysis, or distance transform and watershed. + 10.1016/j.jbiotec.2017.07.019 diff -r 7f8102bdbfa1 -r 364e235bf378 creators.xml --- a/creators.xml Mon May 12 08:15:44 2025 +0000 +++ b/creators.xml Sat Jan 03 14:14:28 2026 +0000 @@ -5,6 +5,11 @@ + + + + + @@ -24,5 +29,15 @@ - + + + + + + + + + + + diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/galaxyIcon_noText.tiff Binary file test-data/galaxyIcon_noText.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/in.tiff Binary file test-data/in.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/README.md Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +# Overview of the test images + +## `input9.tiff`: + +- axes: `ZYX` +- resolution: `(2, 100, 100)` +- dtype: `bool` +- binary image +- metadata: + - resolution: `(1.0, 1.0)` + - z-spacing: `1.0` + - unit: `um` + +## `input9.zarr`: + +- axes: `ZYX` +- resolution: `(2, 100, 100)` +- dtype: `bool` +- binary image +- metadata: + - resolution: `(1.0, 1.0)` + - z-spacing: `1.0` + - unit: `um` + +## `input10.zarr`: + +- axes: `CYX` +- resolution: `(2, 64, 64)` +- dtype: `uint8` +- metadata: + - resolution: `(1.0, 1.0)` + - z-spacing: `1.0` + - unit: `um` + +## `input11.tiff` + +- axes: `YX` +- resolution: `(265, 329)` +- dtype: `uint16` +- binary image + +## `rgb.png`: + +- axes: `YXC` +- resolution: `(6, 6, 3)` +- dtype: `uint8` diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/0/c/0/0/0 Binary file test-data/input/input10.zarr/0/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/0/c/1/0/0 Binary file test-data/input/input10.zarr/0/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/0/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/0/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 64, + 64 + ], + "data_type": "uint8", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": 0, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "c", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/1/c/0/0/0 Binary file test-data/input/input10.zarr/1/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/1/c/1/0/0 Binary file test-data/input/input10.zarr/1/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/1/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/1/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 32, + 32 + ], + "data_type": "uint8", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": 0, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "c", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/2/c/0/0/0 Binary file test-data/input/input10.zarr/2/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/2/c/1/0/0 Binary file test-data/input/input10.zarr/2/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/2/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/2/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 16, + 16 + ], + "data_type": "uint8", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": 0, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "c", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/3/c/0/0/0 Binary file test-data/input/input10.zarr/3/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/3/c/1/0/0 Binary file test-data/input/input10.zarr/3/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/3/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/3/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 8, + 8 + ], + "data_type": "uint8", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": 0, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "c", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/4/c/1/0/0 Binary file test-data/input/input10.zarr/4/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/4/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/4/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 4, + 4 + ], + "data_type": "uint8", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": 0, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "c", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input10.zarr/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input10.zarr/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,95 @@ +{ + "attributes": { + "ome": { + "version": "0.5", + "multiscales": [ + { + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 1.0, + 1.0 + ] + } + ] + }, + { + "path": "1", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 2.0, + 2.0 + ] + } + ] + }, + { + "path": "2", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 4.0, + 4.0 + ] + } + ] + }, + { + "path": "3", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 8.0, + 8.0 + ] + } + ] + }, + { + "path": "4", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 16.0, + 16.0 + ] + } + ] + } + ], + "name": "/", + "axes": [ + { + "name": "c", + "type": "channel" + }, + { + "name": "y", + "type": "space" + }, + { + "name": "x", + "type": "space" + } + ] + } + ] + } + }, + "zarr_format": 3, + "node_type": "group" +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input11.tiff Binary file test-data/input/input11.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.tiff Binary file test-data/input/input9.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/0/c/0/0/0 Binary file test-data/input/input9.zarr/0/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/0/c/1/0/0 Binary file test-data/input/input9.zarr/0/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/0/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/0/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 100, + 100 + ], + "data_type": "bool", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": false, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "z", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/1/c/0/0/0 Binary file test-data/input/input9.zarr/1/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/1/c/1/0/0 Binary file test-data/input/input9.zarr/1/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/1/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/1/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 50, + 50 + ], + "data_type": "bool", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": false, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "z", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/2/c/0/0/0 Binary file test-data/input/input9.zarr/2/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/2/c/1/0/0 Binary file test-data/input/input9.zarr/2/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/2/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/2/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 25, + 25 + ], + "data_type": "bool", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": false, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "z", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/3/c/0/0/0 Binary file test-data/input/input9.zarr/3/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/3/c/1/0/0 Binary file test-data/input/input9.zarr/3/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/3/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/3/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 12, + 12 + ], + "data_type": "bool", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": false, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "z", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/4/c/0/0/0 Binary file test-data/input/input9.zarr/4/c/0/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/4/c/1/0/0 Binary file test-data/input/input9.zarr/4/c/1/0/0 has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/4/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/4/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,46 @@ +{ + "shape": [ + 2, + 6, + 6 + ], + "data_type": "bool", + "chunk_grid": { + "name": "regular", + "configuration": { + "chunk_shape": [ + 1, + 100, + 100 + ] + } + }, + "chunk_key_encoding": { + "name": "default", + "configuration": { + "separator": "/" + } + }, + "fill_value": false, + "codecs": [ + { + "name": "bytes" + }, + { + "name": "zstd", + "configuration": { + "level": 0, + "checksum": false + } + } + ], + "attributes": {}, + "dimension_names": [ + "z", + "y", + "x" + ], + "zarr_format": 3, + "node_type": "array", + "storage_transformers": [] +} \ No newline at end of file diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/input9.zarr/zarr.json --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test-data/input/input9.zarr/zarr.json Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,98 @@ +{ + "attributes": { + "ome": { + "version": "0.5", + "multiscales": [ + { + "datasets": [ + { + "path": "0", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 1.0, + 1.0 + ] + } + ] + }, + { + "path": "1", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 2.0, + 2.0 + ] + } + ] + }, + { + "path": "2", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 4.0, + 4.0 + ] + } + ] + }, + { + "path": "3", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 8.333333333333334, + 8.333333333333334 + ] + } + ] + }, + { + "path": "4", + "coordinateTransformations": [ + { + "type": "scale", + "scale": [ + 1.0, + 16.666666666666668, + 16.666666666666668 + ] + } + ] + } + ], + "name": "/", + "axes": [ + { + "name": "z", + "type": "space", + "unit": "micrometer" + }, + { + "name": "y", + "type": "space", + "unit": "micrometer" + }, + { + "name": "x", + "type": "space", + "unit": "micrometer" + } + ] + } + ] + } + }, + "zarr_format": 3, + "node_type": "group" +} diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/input/rgb.png Binary file test-data/input/rgb.png has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/label.tiff Binary file test-data/label.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/out.tiff Binary file test-data/out.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/output/input11-cca.tiff Binary file test-data/output/input11-cca.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/output/input11-watershed.tiff Binary file test-data/output/input11-watershed.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/output/input9-cca.tiff Binary file test-data/output/input9-cca.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/uint8_z12_x11_y10-output.tiff Binary file test-data/uint8_z12_x11_y10-output.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 test-data/uint8_z12_x11_y10.tiff Binary file test-data/uint8_z12_x11_y10.tiff has changed diff -r 7f8102bdbfa1 -r 364e235bf378 tests.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests.xml Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 7f8102bdbfa1 -r 364e235bf378 validators.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/validators.xml Sat Jan 03 14:14:28 2026 +0000 @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + +