Skip to main content

Lightweight utility package for common computer vision tasks.

Project description

vito - Vision Tools

View on PyPI PyPI - Downloads Build Status Coverage Status License

Python utilities for common computer vision tasks. The goal of this package is to provide a lightweight package helping you with standard/recurring image manipulation tasks.

More advanced functionality is provided by vcp/vitocpp, which is a C++ library with Python 3 bindings.

Examples

  • Pseudocoloring:
    from vito import imutils
    from vito import imvis
    
    # Load a single-channel image (data.dtype will be numpy.uint8)
    peaks = imutils.imread('peaks.png', mode='L')
    # Colorize it
    colorized = imvis.pseudocolor(peaks, limits=None, color_map=colormaps.colormap_viridis_rgb)
    imvis.imshow(colorized)
    
    # Load 16-bit depth stored as PNG (data.dtype will be numpy.int32)
    depth = imutils.imread('depth.png')
    # Colorize it
    colorized = imvis.pseudocolor(depth, limits=None, color_map=colormaps.colormap_turbo_rgb)
    imvis.imshow(colorized)
    
    Exemplary visualizations: colorization via the turbo rainbow colormap (left); same data reduced to 11 bins colorized using viridis (right). Input data is obtained from two translated and scaled Gaussian distributions. Pseudocoloring Example
  • Optical flow:
    from vito import flowutils
    from vito import imvis
    
    # Load optical flow file
    flow = flowutils.floread('color_wheel.flo')
    # Colorize it
    colorized = flowutils.colorize_flow(flow)
    imvis.imshow(colorized)
    
    Exemplary visualization: Optical flow (standard color wheel visualization) and corresponding RGB frame for one frame of the MPI Sintel Flow dataset. Optical Flow Example
  • Pixelation:
    from vito import imutils
    from vito import imvis
    
    img = imutils.imread('homer.png')
    rects = [(80, 50, 67, 84), (257, 50, 82, 75)]  # (Left, Top, Width, Height)
    anon = imutils.apply_on_bboxes(img, rects, imutils.pixelate)
    imvis.imshow(anon)
    
    Exemplary visualization: Anonymization example using imutils.apply_on_bboxes() as shown above, with Gaussian blur kernel (imutils.gaussian_blur(), left) and pixelation (imutils.pixelate(), right), respectively. Anonymization Example
  • For more examples (or if you prefer having a simple GUI to change visualization/analyse your data), see also the iminspect package (which uses vito under the hood).

Dependencies

  • numpy
  • Pillow

Changelog

  • 1.2.0
    • Add pixelation functionality for anonymization via imutils.
    • Add Gaussian blur to imutils.
  • 1.1.5
    • Extend projection utils.
  • 1.1.4
    • Explicitly handle None inputs to imutils.
  • 1.1.3
    • Fix transparent borders when padding.
  • 1.1.2
    • Add sanity checks to imutils which prevent interpreting optional PIL/cv2 parameters as custom parameters.
    • Add grayscale conversion to imutils.
  • 1.1.1
    • Maximum alpha channel value derived from data type.
  • 1.1.0
    • Added padding functionality.
  • 1.0.4
    • Improved test coverage.
    • Fixed potential future bugs - explicit handling of wrong/unexpected user inputs.
  • 1.0.3
    • Minor bug fix: handle invalid user inputs in imvis.
  • 1.0.2
    • Additional tests and minor improvements (potential bug fixes, especially for edge case inputs).
    • Ensure default image I/O parametrization always returns/saves/loads color images as RGB (even if OpenCV is available/used on your system).
  • 1.0.1
    • Fix colorizing boolean masks (where mask[:] = True or mask[:] = False).
  • 1.0.0
    • Rename flow package to flowutils.
  • 0.3.2
    • Rename colorization for optical flow.
  • 0.3.1
    • Fix colormaps.by_name() for grayscale.
  • 0.3.0
    • apply_on_bboxes() now supports optional kwargs to be passed on to the user-defined function handle.
    • Changed imread()'s default mode parameter to optional kwargs which are passed on to Pillow.
    • Raising error for non-existing files in imread()
    • Added colormaps.by_name() functionality.
    • Fixed bounding box clipping off-by-one issue.
    • Added imutils tests ensuring proper data types.
  • 0.2.0
    • Optical flow (Middlebury .flo format) I/O and visualization.
    • Support saving images.
    • Colorization to visualize tracking results.
  • 0.1.1
    • Changed supported python versions for legacy tests.
  • 0.1.0
    • First actually useful release.
    • Contains most of the functionality of pvt (a library I developed throughout my studies).
      • cam_projections - projective geometry, lens distortion/rectification (Plumb Bob model), etc.
      • colormaps - colormap definitions for visualization (jet, parula, magma, viridis, etc.)
      • imutils - image loading, conversion, RoI handling (e.g. apply functions on several patches of an image).
      • imvis - visualization helpers, e.g. pseudocoloring or overlaying images.
      • pyutils - common python functions (timing code, string manipulation, list sorting/search, etc.)
  • 0.0.1
    • Initial public release.
    • Contains common python/language and camera projection utils.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vito-1.2.0.tar.gz (51.7 kB view hashes)

Uploaded Source

Built Distribution

vito-1.2.0-py3-none-any.whl (52.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page