• Home page
  • Login
  • Contact us
  • Repo
  1. Examples
  2. OME Tiff
  • Overview
    • TileDB-BioImaging
  • Examples
    • OME Tiff
    • OME Zarr
  • API Reference
    • Function reference

On this page

  • TileDB OME-TIFF Conversion
    • Convert OME-TIFF to TileDB Slide
    • Slide Group Contents
    • TileDB Slide Information
    • Reading Slide whole levels
    • Reading Slide Data
    • Read level properties
  • Report an issue
  1. Examples
  2. OME Tiff

OME Tiff

Learn how to ingest and perform basic ML operations on the MNIST dense dataset.

TileDB OME-TIFF Conversion

import os

import cv2
import matplotlib.pylab as pylab
import tiledb

from tiledb.bioimg.converters.ome_tiff import OMETiffConverter
from tiledb.bioimg.openslide import TileDBOpenSlide

Convert OME-TIFF to TileDB Slide

src = "../tests/data/CMU-1-Small-Region.ome.tiff"
dest = src + ".tiledb"
if not os.path.exists(dest):
    OMETiffConverter.to_tiledb(src, dest, level_min=0)

Slide Group Contents

a = tiledb.open(os.path.join(dest, "l_0.tdb"))
a.schema
Domain
Name Domain Tile Data Type Is Var-length Filters
C (0, 2) 3 uint32 False -
Y (0, 2966) 1024 uint32 False -
X (0, 2219) 1024 uint32 False -
Attributes
Name Data Type Is Var-Len Is Nullable Filters
intensity uint8 False False
Name Option Level
ZstdFilter level 0
Cell Order
row-major
Tile Order
row-major
Capacity
10000
Sparse
False

TileDB Slide Information

slide = TileDBOpenSlide(dest)
print("level_count:", slide.level_count)
print("dimensions:", slide.dimensions)
print("level_dimensions:", slide.level_dimensions)
print("level_downsamples:", slide.level_downsamples)
print("levels:", slide.levels)
print("group_properties:", slide.properties)
level_count: 2
dimensions: (2220, 2967)
level_dimensions: ((2220, 2967), (574, 768))
level_downsamples: (1.0, 3.865438534407666)
levels: (0, 1)
group_properties: {'axes': 'CYX', 'channels': '["RED", "GREEN", "BLUE"]', 'dataset_type': 'BIOIMG', 'fmt_version': 1, 'json_tiffwriter_kwargs': '{"bigtiff": true, "byteorder": ">", "append": false, "imagej": false, "ome": true}', 'levels': '[{"level": 0, "name": "l_0.tdb", "axes": "CYX", "shape": [3, 2967, 2220]}, {"level": 1, "name": "l_1.tdb", "axes": "CYX", "shape": [3, 768, 574]}]', 'pixel_depth': 1, 'pkg_version': '0.1.1.dev14+dirty'}

Reading Slide whole levels

img3d = slide.read_level(0)
norm_img3d = cv2.normalize(src=img3d, dst=None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
pylab.imshow(norm_img3d)

Reading Slide Data

img3d = slide.read_region((200,200), 0, slide.dimensions)
norm_img3d = cv2.normalize(src=img3d, dst=None, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)
pylab.imshow(norm_img3d)

Read level properties

# Substring of dict
str(slide.level_properties(0))[:200]
'{\'json_write_kwargs\': \'{"subifds": 1, "metadata": {"OME": {"Instrument": {"Objective": {"ID": "Objective:0:0", "NominalMagnification": 20.0}, "ID": "Instrument:0"}, "Image": [{"AcquisitionDate": "2009'
TileDB-BioImaging
OME Zarr
  • Report an issue