Skip to main content

Professional & modular image processing library with OpenCV, MediaPipe, and YOLO integration.

Project description

ImagePRO

Professional & Modular Image Processing Library in Python

ImagePRO is a clean, modular, and easy-to-use Python library for image processing tasks, built with OpenCV, MediaPipe, YOLO, and InsightFace. Designed to be extensible for developers, ImagePRO provides a consistent API across all modules with comprehensive error handling and professional-grade documentation.

Whether you're working on computer vision pipelines, preprocessing images for AI models, or simply automating batch image edits — ImagePRO gives you powerful tools with minimal effort.

✨ Features

Image I/O & Management

  • Flexible input/output handling (file paths or numpy arrays)
  • Batch processing capabilities
  • Multiple format support (JPEG, PNG, CSV, etc.)

Pre-processing & Enhancement

  • Basic Operations: Resize, crop, rotate (90°, 180°, 270°, custom angles), grayscale conversion
  • Filtering: Blur filters (average, Gaussian, median, bilateral), sharpening filters (Laplacian, Unsharp Masking)
  • Enhancement: Contrast enhancement (CLAHE, GHE, stretching)
  • Dataset Generation: Automated image capture with preprocessing pipeline

Human Analysis

  • Face Analysis: 468-point mesh, head pose estimation, eye status detection, face comparison, face cropping
  • Body Analysis: Pose estimation, hand tracking (21 landmarks)
  • Real-time Processing: Live webcam analysis for all modules

Object Detection

  • YOLO Integration: Multiple accuracy levels (nano to extra-large)
  • Flexible Models: Pre-trained or custom model support
  • Batch Processing: Efficient handling of multiple images

🚀 Installation

From PyPI

pip install ImagePRO-Python

From Source

git clone https://github.com/parsasafaie/ImagePRO.git
cd ImagePRO

python -m venv .venv

source .venv/bin/activate   # macOS/Linux
.venv\Scripts\activate      # Windows

# Base dependencies
pip install -r requirements/base.txt

# Optional dependencies
# For YOLO object detection
pip install -r requirements/yolo.txt

# For MediaPipe human analysis
pip install -r requirements/mediapipe.txt

# For InsightFace advanced face analysis
pip install -r requirements/insightface.txt

# Or install everything
pip install -r requirements/full.txt

See the Directory Structure section in PROJECT_STRUCTURE.md for details on which modules need which requirements.

📖 Quick Start

from ImagePRO.pre_processing.blur import apply_average_blur
from ImagePRO.human_analysis.face_analysis.face_mesh_analysis import analyze_face_mesh
from ImagePRO.human_analysis.body_analysis.body_pose_estimation import detect_body_pose
from ImagePRO.object_analysis.object_detection import detect_objects
from ImagePRO.utils.image import Image

# Load an image
image = Image.from_path("person_and_objects.jpg")
# Or from numpy array: image = Image.from_array(np_array)

# Apply average blur
blur_result = apply_average_blur(image=image)
blur_result.save_as_img("blurred_output.jpg")

# Analyze face mesh (468 landmarks)
face_mesh_result = analyze_face_mesh(image=image)
print(f"Detected {len(face_mesh_result.data)} face landmarks")
face_mesh_result.save_as_csv("face_landmarks.csv")

# Detect body pose (33 landmarks)
body_pose_result = detect_body_pose(image=image)
print(f"Body pose data: {body_pose_result.data}")

# Detect objects with YOLO
object_detection_result = detect_objects(
    image=image,
    accuracy_level=3,  # 1=nano, 2=small, 3=medium, 4=large, 5=extra-large
    confidence=0.5
)
print(f"Detected {len(object_detection_result.data)} objects")
object_detection_result.save_as_img("detections.jpg")

Note: These are basic examples. Each module contains many more functions with extensive customization options. Explore the module-specific README files for detailed documentation.

📚 Documentation

Each module includes comprehensive documentation with detailed examples:

For detailed project structure and development guidelines, see PROJECT_STRUCTURE.md.

🏗️ Architecture

ImagePRO is built with a modular architecture designed for extensibility and maintainability:

  • Clean Separation of Concerns: Each module handles a specific domain
  • Consistent API Patterns: All functions follow the same input/output conventions
  • Shared Utilities: Common Image and Result classes for unified I/O
  • Professional Error Handling: Comprehensive validation with clear error messages
  • Type Safety: Full type hints throughout the codebase
  • Documentation: Google-style docstrings for all functions

Key Design Principles

  • Immutable Design: Image objects are immutable, operations return new instances
  • Functional Style: Stateless functions that can be easily composed
  • Result Objects: Unified return type containing image, data, and metadata
  • Keyword Arguments: All optional parameters use keyword-only syntax

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

  1. Fork the repository
  2. Create a virtual environment: python -m venv .venv
  3. Install dependencies: pip install -r requirements/full.txt
  4. Follow the coding standards outlined in PROJECT_STRUCTURE.md
  5. Add tests for new features
  6. Update documentation as needed

Reporting Issues

If you encounter any bugs or have feature requests, please open an issue on the GitHub repository with:

  • Description of the problem or feature request
  • Steps to reproduce (for bugs)
  • Expected vs. actual behavior
  • Environment details (OS, Python version, etc.)

📄 License

This project is licensed under the MIT License – see the LICENSE file for details.

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

imagepro_python-1.2.2.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imagepro_python-1.2.2-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file imagepro_python-1.2.2.tar.gz.

File metadata

  • Download URL: imagepro_python-1.2.2.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for imagepro_python-1.2.2.tar.gz
Algorithm Hash digest
SHA256 1cb2b4488e37afac6154176de8dfd30ae5fbe7794684bed8e623d3b9f49b77d4
MD5 60496fdc881562bc029eaf65ad056c06
BLAKE2b-256 7c6aba55db19e3ab2b82678c3f4f04ee2a652a2a8238b0aef9709bac8b95e1f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for imagepro_python-1.2.2.tar.gz:

Publisher: publish.yml on parsasafaie/ImagePRO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imagepro_python-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: imagepro_python-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for imagepro_python-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 24017794fca1a7464d74de29b8c426c5c32ba08bec902157c954a53d90e7f041
MD5 d61c710ab0b460401f34dacc0c4cc216
BLAKE2b-256 6b53daaf209cc117cc78b9634e87a77db616a304c65a50d4bea5ea4e6315a1e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for imagepro_python-1.2.2-py3-none-any.whl:

Publisher: publish.yml on parsasafaie/ImagePRO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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