pub fn morphological_opening(poly: &[Point2], radius: f64) -> Vec<Point2>
Morphological opening: erosion followed by dilation.
Removes small protrusions.