Image Visualization and Feature Extraction Library
Project description
ImgVisFeat
| Category | Badges |
|---|---|
| Project | |
| Package | |
| Development | |
| Community |
ImgVisFeat is a Python library for image visualization and feature extraction, providing a comprehensive set of tools for analyzing and visualizing various image features.
Features
ImgVisFeat provides the following visualization and feature extraction capabilities:
- Color Channel Visualization: Extract and visualize individual RGB color channels
- Gradient Visualization: Compute and visualize image gradients in X, Y, and combined XY directions
- ColorGradientVisualizer: For color images
- GrayGradientVisualizer: For grayscale images
- HoG (Histogram of Oriented Gradients): Visualize feature descriptors for object detection
- LBP (Local Binary Patterns): Extract texture descriptors for texture classification
- Keypoint Detection: Detect and visualize keypoints using SIFT, AKAZE, or ORB algorithms
- Power Spectrum Analysis: Analyze frequency domain characteristics of images
- CLI Tool: Command-line interface for quick visualizations
Requirements
- Python >= 3.10
Installation
Install from PyPI
# Using pip
pip install imvf
# Using uv (faster alternative)
uv add imvf
Development Installation
For development, we recommend using uv:
git clone https://github.com/chatflip/ImgVisFeat.git
cd ImgVisFeat
make install
# Install pre-commit hooks
pre-commit install
Development
This project uses make commands for common development tasks:
# Show available commands
make help
# Run tests
make test
# Generate HTML coverage report and open in browser
make coverage
# Format code
make format
# Run linting
make lint
# Serve documentation with live reload
make servedocs
For more details on development workflows, see CLAUDE.md.
Verify Installation
import imvf
print(imvf.__version__)
Quick Start
Using the All-in-One Visualizer
The Visualizer class provides a convenient way to apply all visualization methods at once:
import imvf
# Create visualizer instance
visualizer = imvf.Visualizer()
# Visualize all features and save results to a directory named after the image
visualizer.visualize("path/to/image.jpg")
This will display all visualizations in OpenCV windows and save the results to a directory named path/to/image/.
Using Individual Visualizers
You can also use individual visualizers for specific analyses:
import cv2
import imvf
# Load image
image = cv2.imread("path/to/image.jpg")
# Color channel visualization
color_channel = imvf.ColorChannelVisualizer()
result = color_channel(image)
cv2.imshow("Blue Channel", result.blue)
cv2.imshow("Green Channel", result.green)
cv2.imshow("Red Channel", result.red)
# Gradient visualization (for color images)
gradient = imvf.ColorGradientVisualizer()
result = gradient(image)
cv2.imshow("Gradient X", result.gradient_x)
cv2.imshow("Gradient Y", result.gradient_y)
cv2.imshow("Gradient XY", result.gradient_xy)
# HoG visualization
hog = imvf.HoGVisualizer()
result = hog(image)
cv2.imshow("HoG", result.hog)
# Keypoint detection
keypoint = imvf.KeypointVisualizer(algorithm="SIFT") # or "AKAZE", "ORB"
result = keypoint(image)
cv2.imshow("Keypoints", result.keypoint)
cv2.imshow("Rich Keypoints", result.rich_keypoint)
Using the CLI
ImgVisFeat provides a command-line interface for quick visualizations. The CLI uses subcommands for each visualization method:
# Visualize all features
imvf all path/to/image.jpg
# Visualize specific features
imvf hog path/to/image.jpg
imvf keypoint path/to/image.jpg
imvf gradient path/to/image.jpg
# Get help
imvf --help
# Get help for a specific subcommand
imvf hog --help
Available subcommands:
all: All visualization methodscolor-channel: Color channel visualizationgradient: Gradient visualizationhog: HoG (Histogram of Oriented Gradients) visualizationlbp: LBP (Local Binary Patterns) visualizationkeypoint: Keypoint detection and visualizationpower-spectrum: Power spectrum analysis
Documentation
For full documentation, including API reference and tutorials, please visit our documentation site.
Project Status
ImgVisFeat is a personal project created for learning and experimentation. While it's open-source and you're welcome to use and learn from it, please note that it may not be actively maintained or updated regularly.
Feedback and Questions
This is a practice repository, but I'm always eager to learn. If you have any questions about the project or suggestions for improvement, feel free to open an issue for discussion. Please understand that responses may not be immediate.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imvf-0.1.5.tar.gz.
File metadata
- Download URL: imvf-0.1.5.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc41fefe605ff5ada6549f0e8a8c7f15b69d60f8c3ccc13f437251f3d51abd80
|
|
| MD5 |
af95fbe04d2647803cb06fab521a5fcf
|
|
| BLAKE2b-256 |
958cf0fb42f36d89ed6b14be7b9463effee8923337705d3f52896d167b59b916
|
File details
Details for the file imvf-0.1.5-py3-none-any.whl.
File metadata
- Download URL: imvf-0.1.5-py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c0af577177a3171a3455f16a43f22a0250a0df677a971620b8da24edd7318a4
|
|
| MD5 |
a7e3384f3bc5edb4b6e56b858bdce626
|
|
| BLAKE2b-256 |
b424b028e663fdcea1bf0998a40d0f2d7faa41663c204e7a06cb2426297bb674
|