"""Image Processing for Python ``scikit-image`` (a.k.a. ``skimage``) is a collection of algorithms for image processing and computer vision. The main package of ``skimage`` only provides a few utilities for converting between image data types; for most features, you need to import one of the following subpackages: Subpackages ----------- color Color space conversion. data Test images and example data. draw Drawing primitives (lines, text, etc.) that operate on NumPy arrays. exposure Image intensity adjustment, e.g., histogram equalization, etc. feature Feature detection and extraction, e.g., texture analysis corners, etc. filters Sharpening, edge finding, rank filters, thresholding, etc. graph Graph-theoretic operations, e.g., shortest paths. io Reading, saving, and displaying images and video. measure Measurement of image properties, e.g., similarity and contours. morphology Morphological operations, e.g., opening or skeletonization. restoration Restoration algorithms, e.g., deconvolution algorithms, denoising, etc. segmentation Partitioning an image into multiple regions. transform Geometric and other transforms, e.g., rotation or the Radon transform. util Generic utilities. viewer A simple graphical user interface for visualizing results and exploring parameters. Utility Functions ----------------- img_as_float Convert an image to floating point format, with values in [0, 1]. Is similar to `img_as_float64`, but will not convert lower-precision floating point arrays to `float64`. img_as_float32 Convert an image to single-precision (32-bit) floating point format, with values in [0, 1]. img_as_float64 Convert an image to double-precision (64-bit) floating point format, with values in [0, 1]. img_as_uint Convert an image to unsigned integer format, with values in [0, 65535]. img_as_int Convert an image to signed integer format, with values in [-32768, 32767]. img_as_ubyte Convert an image to unsigned byte format, with values in [0, 255]. img_as_bool Convert an image to boolean format, with values either True or False. dtype_limits Return intensity limits, i.e. (min, max) tuple, of the image's dtype. """ import sys __version__ = '0.17.2' from ._shared.version_requirements import ensure_python_version ensure_python_version((3, 5)) # Logic for checking for improper install and importing while in the source # tree when package has not been installed inplace. # Code adapted from scikit-learn's __check_build module. _INPLACE_MSG = """ It appears that you are importing a local scikit-image source tree. For this, you need to have an inplace install. Maybe you are in the source directory and you need to try from another location.""" _STANDARD_MSG = """ Your install of scikit-image appears to be broken. Try re-installing the package following the instructions at: https://scikit-image.org/docs/stable/install.html """ def _raise_build_error(e): # Raise a comprehensible error import os.path as osp local_dir = osp.split(__file__)[0] msg = _STANDARD_MSG if local_dir == "skimage": # Picking up the local install: this will work only if the # install is an 'inplace build' msg = _INPLACE_MSG raise ImportError("""%s It seems that scikit-image has not been built correctly. %s""" % (e, msg)) try: # This variable is injected in the __builtins__ by the build # process. It used to enable importing subpackages of skimage when # the binaries are not built __SKIMAGE_SETUP__ except NameError: __SKIMAGE_SETUP__ = False if __SKIMAGE_SETUP__: sys.stderr.write('Partial import of skimage during the build process.\n') # We are not importing the rest of the scikit during the build # process, as it may not be compiled yet else: try: from ._shared import geometry del geometry except ImportError as e: _raise_build_error(e) # All skimage root imports go here from .util.dtype import (img_as_float32, img_as_float64, img_as_float, img_as_int, img_as_uint, img_as_ubyte, img_as_bool, dtype_limits) from .data import data_dir from .util.lookfor import lookfor del sys