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 operationscv2(OpenCV) - For OpenCV visualization and MBR computationmatplotlib- For matplotlib visualizationscipy- For convex hull computationconcave_hull- Concave hull algorithmalphashape- Alphashape algorithmshapely- 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