Lightweight utility package for common computer vision tasks.
Project description
vito - Vision Tools
Python utilities for common computer vision tasks. The goal of this package is to provide a lightweight python-only package for very basic image manipulation tasks, optical flow handling, pseudocoloring and camera geometry.
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: colorizing via theturbo
rainbow colormap (left); same data reduced to 11 bins colorized usingviridis
(right). Input data is obtained from two translated and scaled Gaussian distributions. - 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. - 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 usingimutils.apply_on_bboxes()
as shown above, with Gaussian blur kernel (imutils.gaussian_blur()
, left) and pixelation (imutils.pixelate()
, right), respectively. - For more examples (or if you prefer having a simple GUI to change visualization/analyze your data), see also the iminspect package (which uses
vito
under the hood).
Dependencies
numpy
Pillow
Changelog
1.6.1
- House keeping: Internal adaptations to fix deprecated (NumPy) and changed (PIL) library usage.
- CI updates to PyPI's trusted publishing.
- Code clean up (added type hints, docstrings, ...).
1.6.0
- Remove deprecated functionality (workarounds for Python versions older than 3.6).
- Add type hints and update documentation.
- Add parameter order check to
imsave
(that's the one thing I alwys mess up when coding without IDE). imsave
now creates the output directory structure if it did not exist.
1.5.3
- Mute initial notification about
imshow
backend. - Catch exception and adjust
imshow
backend if used with headless OpenCV.
- Mute initial notification about
1.5.2
- Changed
imshow
to skip waiting for user input ifwait_ms=0
. - Added (RGB) colormap handles for convenience.
- Drop support for deprecated Python version 3.5.
- Changed
1.5.1
- Changed handling of
None
inputs for image concatenation/stacking.
- Changed handling of
1.5.0
- Extends the
imutils
submodule (rotation, concatenation & noop). - Fix deprecation warnings with newer NumPy versions.
- Extended test suite.
- Extends the
1.4.1
- Removes f-strings to fix compatibility for older python 3.5.
1.4.0
- Changed
imvis.overlay
to use a more intuitive signature. - Aliases for some
cam_projections
functions. - Spell-checked all files via
pyspelling
.
- Changed
1.3.4
- Extended input handling for
imutils
(support single channel input to rgb2gray). - Aliases for some
imutils
functions. - Cleaning up tests, documentation, etc.
- Extended input handling for
1.3.3
- Prevent nan values caused by floating point precision issues in the
cam_projections
submodule. - Remove the (empty)
tracking
submodule (to be added in a future release). - Update the submodule list.
- Prevent nan values caused by floating point precision issues in the
1.3.2
- Support custom label maps in
detection2d
module. - Construct
BoundingBox
es from relative representations.
- Support custom label maps in
1.3.1
- Relative
BoundingBox
representation. - Support label lookup for
Detection
instances directly.
- Relative
1.3.0
- Common representations and utilities for 2D object detection via the
detection2d
module.Detection
class to encapsulate object detections.BoundingBox
class to work with axis-aligned bounding boxes.
- Common representations and utilities for 2D object detection via the
1.2.3
- Support sampling from colormaps.
- Adjust tests to updated PIL version.
1.2.2
- Use explicit copies in
pseudocolor()
to prevent immutable assignment destination errors.
- Use explicit copies in
1.2.1
- Explicitly handle invalid (NaN and infinite) inputs to
pseudocolor()
.
- Explicitly handle invalid (NaN and infinite) inputs to
1.2.0
- Add pixelation functionality for anonymization via
imutils
. - Add Gaussian blur to
imutils
.
- Add pixelation functionality for anonymization via
1.1.5
- Extend projection utils.
1.1.4
- Explicitly handle
None
inputs toimutils
.
- Explicitly handle
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
.
- Add sanity checks to
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
.
- Minor bug fix: handle invalid user inputs in
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
ormask[:] = False
).
- Fix colorizing boolean masks (where
1.0.0
- Rename flow package to
flowutils
.
- Rename flow package to
0.3.2
- Rename colorization for optical flow.
0.3.1
- Fix
colormaps.by_name()
for grayscale.
- Fix
0.3.0
apply_on_bboxes()
now supports optional kwargs to be passed on to the user-defined function handle.- Changed
imread()
's defaultmode
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.
- Visualization utils for 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
Release history Release notifications | RSS feed
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.6.1.tar.gz
(61.5 kB
view details)
Built Distribution
vito-1.6.1-py3-none-any.whl
(62.3 kB
view details)
File details
Details for the file vito-1.6.1.tar.gz
.
File metadata
- Download URL: vito-1.6.1.tar.gz
- Upload date:
- Size: 61.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ccec147863fad1e82a0d46bb9ccdaec9ff960cdbb96303c5359488118b9479de |
|
MD5 | ea6b7173800663a138cb2b724109d9ad |
|
BLAKE2b-256 | b5839032c6dfd8bbe81a434dd5490f122edacc65bbb791dbe5d7c3d68bb22231 |
File details
Details for the file vito-1.6.1-py3-none-any.whl
.
File metadata
- Download URL: vito-1.6.1-py3-none-any.whl
- Upload date:
- Size: 62.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d836080f7229bc44e3b7805cbd531f6748c4d89b0abb48a1b546a82ad4dde2f |
|
MD5 | f30fbe555d0d44abd1657c3c12889386 |
|
BLAKE2b-256 | ce707a8d4a917f58b3e50eb1abe638f01b9bee3c1bd08fa1d341d0df7ac5ad97 |