Annotation File to OME-TIFFΒΆ
This example shows how to turn a volume annotation downloaded from WEBKNOSSOS into a OME-TIFF. When manually downloading a WEBKNOSSOS annotation through the UI you end up with a ZIP file containing the volume segmentation in the WKW-format (and potentially any skeleton annotation).
As an alternative to manually downloading annotation files, have a look at streaming the data directly from the remote serve, e.g., in this example.
from pathlib import Path
from tifffile import imwrite
import webknossos as wk
# Specify a bounding box for cutouts
# (topleft_x, topleft_y, topleft_z), (width, height, depth)
BOUNDING_BOX = wk.BoundingBox((0, 0, 0), (500, 500, 50))
def load_annotation(annotation_file: Path) -> None:
# Read the WEBKNOSSOS annotation file (a zipped WKW)
annotation = wk.Annotation.load(annotation_file)
# Treat it as a regular WK volume layer
with annotation.temporary_volume_layer_copy() as segmentation_layer:
# Do any standard layer operation, e.g. reading a cutout as a numpy array
mag_view = segmentation_layer.get_finest_mag()
segments = mag_view.read(absolute_bounding_box=BOUNDING_BOX)
# Drop channel dimension as it has depth 1
segments = segments[0]
# Write segmentation IDs to an OME Tiff file
imwrite(
"segmentation.ome.tiff",
segments.T, # note, the tiff lib use different channel order
ome=True,
metadata={
"axes": "ZYX",
},
)
if __name__ == "__main__":
# Path to annotation file on your computer
ANNOTATION_FILE = Path("my_annotation_file.zip")
load_annotation(ANNOTATION_FILE)
- Get Help
- Community Forums
- Email Support