class_docstr: Dataset of images built from a list of paths to image files.
  
  This dataset reads an external image file on every call of the
  :meth:`__getitem__` operator. The paths to the image to retrieve is given
  as either a list of strings or a text file that contains paths in distinct
  lines.
  
  Each image is automatically converted to arrays of shape
  ``channels, height, width``, where ``channels`` represents the number of
  channels in each pixel (e.g., 1 for grey-scale images, and 3 for RGB-color
  images).
  
  .. note::
     **This dataset requires the Pillow package being installed.** In order
     to use this dataset, install Pillow (e.g. by using the command ``pip
     install Pillow``). Be careful to prepare appropriate libraries for image
     formats you want to use (e.g. libpng for PNG images, and libjpeg for JPG
     images).
  
  .. warning::
     **You are responsible for preprocessing the images before feeding them
     to a model.** For example, if your dataset contains both RGB and
     grayscale images, make sure that you convert them to the same format.
     Otherwise you will get errors because the input dimensions are different
     for RGB and grayscale images.
  
  Args:
      paths (str or list of strs): If it is a string, it is a path to a text
          file that contains paths to images in distinct lines. If it is a
          list of paths, the ``i``-th element represents the path to the
          ``i``-th image. In both cases, each path is a relative one from the
          root path given by another argument.
      root (str): Root directory to retrieve images from.
      dtype: Data type of resulting image arrays. ``chainer.config.dtype`` is
          used by default (see :ref:`configuration`).
code: def get_example(self, i):
      path = os.path.join(self._root, self._paths[i])
      image = _read_image_as_array(path, self._dtype)
  
      return _postprocess_image(image)
  
imports: import bisect
  import io
  import os
  import threading
  import zipfile
  import numpy
  import six
  import chainer
  from chainer.dataset import dataset_mixin
label_desc: Use image node_id 3 for calling the ImageDataset obj's underlying member method code with example usage: obj.get_example(i) and returns: _postprocess_image