Qt-based GUI to visualize image-like data.
Project description
iminspect
A python utility package for image/matrix visualization.
Moving from MATLAB to python I was missing fast and easy-to-use inspection tools for image data.
Thus, iminspect
provides a collection of visualization/inspection capabilities along with a Qt-based GUI.
The goal is to enable quick and easy visualization/analysis of:
- color images,
- monochrome images (i.e. any type of 2D matrices),
- label images (i.e. categorical data),
- binary masks,
- depth maps, and
- optical flow data.
Example usage:
from iminspect.inspector import inspect, DataType
import numpy as np
# Show random noise image:
inspect(np.random.rand(4096,4096) - 0.5)
# Show as class labels:
inspect((np.random.rand(16,16) * 1e2 % 5).astype(np.int16), data_type=DataType.CATEGORICAL)
# Show two images next to each other, e.g. useful to analyse RGB and
# corresponding depth, or RGB and corresponding optical flow:
inspect((data_color, data_depth))
# or specify the data types manually:
inspect((rgb, flow), data_type=(DataType.COLOR, DataType.FLOW)))
Example: visualizing categorical data (i.e. labels)
Example: visualizing a mask image
Example: visualizing RGB image and optical flow
Dependencies
numpy
, for matrix manipulationPyQt5
, for the graphical user interfaceqimage2ndarray
, to convert numpy ndarrays to Qt imagesvito
, a lightweight vision tool package
UI Documentation
- To inspect a data point/pixel, just move the mouse above it.
- Zooming:
Ctrl+Wheel
to zoom in/out.Ctrl+Shift+Wheel
to speed up zooming.Ctrl+{+|-}
to zoom in/out.Ctrl+Shift+{+|-}
to zoom in/out faster.Ctrl+F
to zoom such that the image fills the available canvas.Ctrl+1
to scale to original size.
- Scrolling:
Wheel
scrolls up/down.Shift+Wheel
speeds up scrolling.Ctrl+{Up|Down|Left|Right}
to scroll using keyboard.Ctrl+Shift+{Up|Down|Left|Right}
to scroll faster/further.- Press and move left/right button to drag the image if zoomed in.
- Keyboard shortcuts:
Ctrl+Q
andCtrl+W
close the inspection GUI.Ctrl+O
shows a dialog to open another file.Ctrl+S
shows a dialog to save either the (raw) input or its current visualization.Ctrl+T
toggle tool tip display when moving the mouse over the data.
Changelog
1.3.1
- Minor extensions to user
inputs
subpackage.
- Minor extensions to user
1.3.0
- Added a range slider to adjust visualization limits on the fly.
- Image viewer (canvas) now supports dragging.
- Support toggling the tool tip display.
- Support adding custom labels for categorical data.
- Fix running
inputs.py
as standalone demo (relative import confusion).
1.2.0
- Support multi-channel input data (with more than 4 channels).
- Support analysing multiple images at once, e.g. color images and corresponding optical flow.
- Major refactoring under the hood.
1.1.0
- Support saving visualization and raw input data to disk.
- Added shorthand wrapper to
inspect()
call. - UI improvements/layout changes.
- Fixed typos such as
DataType.CATEGORICAL
. - Added support for partially transparent images (i.e. RGBA).
1.0.0
- Major code refactoring: use data type enum instead of various flags (this breaks previous inspect() calls).
- Optical flow support.
- Load another file from disk (via
Ctrl+O
). - Usability improvements, e.g. restore display settings when opening similar data type, handle file loading errors, etc.
0.2.0
- Major refactoring: moved image utils and colorizing code to separate vito package.
- Usability improvements: keyboard shortcuts for zooming, scaling and scrolling.
0.1.2
- Added tests for non-GUI functionality.
- Integrate github runners for test/build/deploy.
- Fix definition for colormap gray.
0.1.1
- Additional features:
- ImageCanvas supports ROI selection (useful for custom input widgets).
- Refactoring:
- Clean up imports.
- Make pylint/flake8 happier.
- Fixes:
- Adjust scrollbars when zooming multiple linked ImageCanvas.
- Additional features:
0.1.0
- Initial public release.
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
iminspect-1.3.1.tar.gz
(38.6 kB
view details)
Built Distribution
iminspect-1.3.1-py3-none-any.whl
(40.2 kB
view details)
File details
Details for the file iminspect-1.3.1.tar.gz
.
File metadata
- Download URL: iminspect-1.3.1.tar.gz
- Upload date:
- Size: 38.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16d9e4b6b8f6ffde7cfcad47dfd0627f6770517d89b791e1275d632848ea642f |
|
MD5 | 08741c80f371ff86a63596ef44310eb8 |
|
BLAKE2b-256 | b21ce2cb628228f2b5607174e8ddb51d20f233a74df297b8d40ab412f733bd4f |
File details
Details for the file iminspect-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: iminspect-1.3.1-py3-none-any.whl
- Upload date:
- Size: 40.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5cfb73e0df454f06c96120f6fa270b10e2febae1670000bedc72ff55e6f0cf3 |
|
MD5 | 6cc82159d7b0506dac83e191200c9937 |
|
BLAKE2b-256 | fdf916e419662066558e00df225b4f3a6893cb8e7eb3392456023c38135fbd18 |