🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Pywayne Cv Geometric Hull Calculator

by @wangyendt

Geometric hull calculator for 2D point sets supporting convex hull, concave hull (concave-hull, alphashape), and minimum bounding rectangle. Use when working...

Versionv0.1.0
Downloads754
TERMINAL
clawhub install geometric-hull-calculator

πŸ“– About This Skill


name: pywayne-cv-geometric-hull-calculator description: Geometric hull calculator for 2D point sets supporting convex hull, concave hull (concave-hull, alphashape), and minimum bounding rectangle. Use when working with pywayne.cv.geometric_hull_calculator module to compute geometric hulls, visualize results with OpenCV or matplotlib, and generate random test point sets.

Pywayne Geometric Hull Calculator

This module computes geometric hulls (convex and concave) for 2D point sets.

Quick Start

from pywayne.cv.geometric_hull_calculator import GeometricHullCalculator
import numpy as np

Create calculator with random points

points = GeometricHullCalculator.generate_random_points(num_points=50) calculator = GeometricHullCalculator(points, algorithm='concave-hull')

Get results

print(f"MBR: {calculator.get_mbr()}") print(f"Convex Hull: {calculator.get_convex_hull()}") print(f"Concave Hull: {calculator.get_concave_hull()}")

Visualize with matplotlib

calculator.visualize_matplotlib()

Initialization

# algorithm options: 'concave-hull' or 'alphashape'

use_filtered_pts: Enable point filtering based on radius

calculator = GeometricHullCalculator( points=your_points, algorithm='alphashape', use_filtered_pts=True )

Supported Algorithms

| Algorithm | Description | |-----------|-------------| | concave-hull | Concave hull using concave_hull library | | alphashape | Concave hull using alphashape library |

Hull Types

| Type | Method | Description | |------|---------|-------------| | Convex Hull | get_convex_hull() | Outer hull containing all points | | Concave Hull | get_concave_hull() | Inner concave boundary |

Properties

| Property | Description | |---------|-------------| | points | Input 2D points (NΓ—2 numpy array) | | algorithm | Algorithm used for concave hull | | use_filtered_pts | Whether filtered points were used | | box | Minimum Bounding Rectangle corners | | center | Center point of input points | | filter_radius | Radius used for point filtering | | concave_hull_result | Concave hull points or polygons |

Visualization

OpenCV Visualization

calculator.visualize_opencv()

Displays: All input points, MBR, center, filter circle (if enabled), concave hull (green), convex hull (red).

Matplotlib Visualization

calculator.visualize_matplotlib()

Displays: All input points (red), MBR (blue), center, filter radius circle (if enabled), concave hull (orange), convex hull (purple).

Requirements

  • numpy - Array operations
  • cv2 (OpenCV) - For OpenCV visualization and MBR computation
  • matplotlib - For matplotlib visualization
  • scipy - For convex hull computation
  • concave_hull - Concave hull algorithm
  • alphashape - Alphashape algorithm
  • shapely - Polygon operations for area calculation
  • Notes

  • Point filtering uses radius = 30% of shorter MBR edge length
  • MBR computed using OpenCV's minAreaRect
  • Convex hull uses scipy's ConvexHull
  • Supports both single Polygon and MultiPolygon from alphashape results
  • πŸ’‘ Examples

    from pywayne.cv.geometric_hull_calculator import GeometricHullCalculator
    import numpy as np

    Create calculator with random points

    points = GeometricHullCalculator.generate_random_points(num_points=50) calculator = GeometricHullCalculator(points, algorithm='concave-hull')

    Get results

    print(f"MBR: {calculator.get_mbr()}") print(f"Convex Hull: {calculator.get_convex_hull()}") print(f"Concave Hull: {calculator.get_concave_hull()}")

    Visualize with matplotlib

    calculator.visualize_matplotlib()

    πŸ“‹ Tips & Best Practices

  • Point filtering uses radius = 30% of shorter MBR edge length
  • MBR computed using OpenCV's minAreaRect
  • Convex hull uses scipy's ConvexHull
  • Supports both single Polygon and MultiPolygon from alphashape results