import numpy as np import skimage.io class Channel(object): def __init__(self, name, camera, exposure_time): self._name = name self._camera = camera self._exposure_time = exposure_time @property def name(self): if self._name is not None and self._name != "": return self._name return "UnnamedChannel" @property def camera(self): return self._camera @property def exposure_time(self): return self._exposure_time class ImageSet(object): """ A group of images that share the same timestamp. NIS Elements doesn't store a unique timestamp for every image, rather, it stores one for each set of images that share the same field of view and z-axis level. """ def __init__(self): self._images = [] def add(self, image): """ :type image: nd2reader.model.Image() """ self._images.append(image) def __iter__(self): for image in self._images: yield image class Image(object): def __init__(self, timestamp, raw_array, height, width): self._timestamp = timestamp self._raw_data = raw_array self._height = height self._width = width @property def timestamp(self): # TODO: Convert to datetime object return self._timestamp @property def data(self): return np.reshape(self._raw_data, (self._height, self._width)) def show(self): skimage.io.imshow(self.data) skimage.io.show()