AgentSkillsCN

pywayne-cv-geometric-hull-calculator

用于2D点集的几何凸包计算器,支持凸包、凹包(凹包、阿尔法形状),以及最小包围矩形。在使用pywayne.cv.geometric_hull_calculator模块计算几何凸包、通过OpenCV或Matplotlib可视化结果,以及生成随机测试点集时使用此功能。

SKILL.md
--- frontmatter
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

python
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

python
# 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

AlgorithmDescription
concave-hullConcave hull using concave_hull library
alphashapeConcave hull using alphashape library

Hull Types

TypeMethodDescription
Convex Hullget_convex_hull()Outer hull containing all points
Concave Hullget_concave_hull()Inner concave boundary

Properties

PropertyDescription
pointsInput 2D points (N×2 numpy array)
algorithmAlgorithm used for concave hull
use_filtered_ptsWhether filtered points were used
boxMinimum Bounding Rectangle corners
centerCenter point of input points
filter_radiusRadius used for point filtering
concave_hull_resultConcave hull points or polygons

Visualization

OpenCV Visualization

python
calculator.visualize_opencv()

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

Matplotlib Visualization

python
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