Skip to content

TheLaueLab/point-alignment

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coherent Point Drift

A python implementation of rigid and affine alignment using the coherent point drift algorithm. Includes brute-force search for rigid alignment in global rotation space.

Installation

Installing the package via setup.py is the recommended usage. This provides the executable cpd. Detailed instructions can be found in the official documentation. It can also be run from the source directory with python3 -m coherent_point_drift.main.

Dependencies

Python 3 and Numpy. Numpy is available from PyPI and can be installed as described in the pip documentation. To support plotting, matplotlib is required. To support MATLAB compatible output, scipy is required. These are all available from PyPI.

Usage

Script

The main script align.py, performs alignment searches and can also plot the result. If using setup.py, it will be installed as the cpd exectutable. Detailed instructions and lists of supported formats are available with the --help option, but general use is as follows:

align.py align reference.csv points.csv

This will produce a transform to align the points in points.csv to the points in reference.csv (other input formats are supported).

To save the resulting transform (e.g. for plotting), specify the --format argument. Then, redirect the output into your target file:

align.py align reference.csv points.csv --format pickle > xform.pickle

The alignment can be visualized with the plot command:

align.py plot reference.csv points.csv xform.pickle

Or, it can be applied to an arbitrary set of points with the xform command:

align.py xform points.csv xform --format txt

Note --format specifies the format of the output, the input format is guessed from the file extension.

Demo

Some sample points and a transform can be found in the tests/fixtures directory, as ref.pickle, deg.pickle and xform.pickle respectively.

Other examples can be found in the figures directory, but these are not actively maintained.

About

Python (partial) coherent point drift implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%