Source code for E200.E200_load_images

# import tifffile
from .E200_api_getdat import E200_api_getdat
from .classes import *  # NOQA
from .get_remoteprefix import get_remoteprefix
import PIL
import logging
import os as _os
on_rtd = _os.environ.get('READTHEDOCS', None) == 'True'
if not on_rtd:
    import numpy as _np
    import scipy.io as _spio
import os
loggerlevel = logging.DEBUG
logger      = logging.getLogger(__name__)


[docs]def E200_load_images(img_dataset, UID=None): """ Loads available images from *img_dataset* (type :class:`E200.Drill` containing camera data) corresponding to *UID* (:code:`array` or number). Returns an instance of :class:`E200.E200_Image`. """ logger.log(level=loggerlevel, msg='Loading images...') try: remote_bool = img_dataset._hdf5.file['data']['VersionInfo']['remotefiles']['dat'][0, 0] except: remote_bool = True if remote_bool: prefix = get_remoteprefix() else: prefix = '' imgdat = E200_api_getdat(img_dataset, UID=UID) imgs = _np.array([PIL.Image.open(os.path.join(prefix, val[1:])) for val in imgdat.dat], dtype=object) num_imgs = _np.size(imgs) timestamps = _np.empty(num_imgs) for i, img in enumerate(imgs): img_arr = _np.asarray(img) imgs[i] = _np.uint64(img_arr) timestamps[i] = img.tag[65002][0] logger.log(level=loggerlevel, msg='Loading backgrounds...') imgbgdat = E200_api_getdat(img_dataset, fieldname='background_dat', UID=imgdat.uid) # for i, val in enumerate(imgbgdat.dat): # print val i = 0 val = imgbgdat.dat[i] val = os.path.join(prefix, val[1:]) mat = _spio.loadmat(val) imgbg = mat['img'] # if imgs[i].shape[0] == imgbg.shape[1]: # imgbg = _np.transpose(imgbg) # imgs[i] = _np.fliplr(_np.abs(imgs[i]-_np.float64(imgbg))) return E200_Image(images=_np.array(imgs), dat=imgdat.dat, uid=imgdat.uid, image_backgrounds=imgbg, timestamps=timestamps)