A python module of the concave hull algorithm described in this Code Project article written in C++, adapted for python using pybind11. Requires FLANN.
Download FLANN 1.8 from here and build using a C++ compiler. Set the FLANN directory in the environment variables under the variable name FLANN_DIR.
set FLANN_DIR=path/to/flann/dir
Or set the environment variables via the control panel.
Install FLANN using apt:
sudo apt install libflann-dev
Or download the source and build.
mkdir build cd build cmake .. make make install
Set the environment variable.
export FLANN_DIR=/usr/include
With the FLANN_DIR variable set run the setup.py file using pip, by running the following command in the concave hull directory:
pip install .
In python import the module and use the compute method to compute a concave hull.
import numpy as np
import concave_hull
points = np.random.rand(20, 2)
hull = concave_hull.compute(points, 3)
Computes the concave hull of a set of points.
- points : (Mx2) array
- The coordinates of the points.
- k : int
- The initial k neighbors to search for.
- iterate : bool
- If false the algorithm will stop after only one iteration of K, irrespective of result.
- hull : (Mx2) array
- The coordinates of the points of the concave hull