Coder Social home page Coder Social logo

concave-hull's Introduction

Concave Hull

A python module of the concave hull algorithm described in this Code Project article written in C++, adapted for python using pybind11. Requires FLANN.

Installation

FLANN

Windows

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.

Ubuntu

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

Concave Hull

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 .

Usage

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)

Python doc

Computes the concave hull of a set of points.

Parameters

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.

Returns

hull : (Mx2) array

The coordinates of the points of the concave hull

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.