cpd

C++ implementation of the Coherent Point Drift point set registration algorithm.

GPL-2.0 License

Stars
379
Committers
8

Bot releases are visible (Hide)

cpd - v0.5.5 Latest Release

Published by gadomski 6 months ago

What's Changed

Full Changelog: https://github.com/gadomski/cpd/compare/v0.5.4...v0.5.5

cpd - v0.5.4

Published by gadomski over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/gadomski/cpd/compare/v0.5.3...v0.5.4

cpd - v0.5.2

Published by gadomski over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/gadomski/cpd/compare/v0.5.1...v0.5.2

cpd - v0.5.3

Published by gadomski almost 4 years ago

Switch from Travis CI to Github actions.

cpd - v0.5.1

Published by gadomski over 7 years ago

  • [FIXED] Documentation builds on Travis.
  • [FIXED] Setting the GaussTransform on a Transformation.
  • [FIXED] Bug in the normalization test (#107).
  • [ADDED] Test for scaling in rigid transformations.
  • [ADDED] Better error message when allocation fails when creating an affinity matrix (#104).
  • [ADDED] A new example, random, that can be used to test large allocations.
  • [ADDED] An example to demonstrate setting the transform to fgt.
  • [ADDED] "Unlinked" normalization, where the two datasets can be scaled differently (#112).
  • [ADDED] A matrix method for both rigid and affine results. This matrix contains the entire transformation. Also added an example that calculates and applies a transformation matrix (#108).
  • [ENHANCED] The rigid example.
  • [ENHANCED] CMake configuration for jsoncpp builds (#105).
  • [ENHANCED] Documentation.
cpd - v0.5.0

Published by gadomski over 7 years ago

There were enough wires to rip up that I'm mashing all of these changes
into one big changeset for the v0.5 update.

The big changes include:

  • Remove the Runner, move all the common iterative logic to a
    templated Transform virtual base class, from which Rigid and
    friends derive.
  • Remove vendored upstream dependencies (other than gtest). Managing
    vendored dependencies was a big pain. Instead, I'm trying out
    "components", e.g. the jsoncpp functionality is included as a
    component that requires an external jsoncpp to be present. We'll see
    how that goes.
  • Remove all logging, for now. I might add it back (via the component
    mechanism mentioned above) but I'm not sure. While it's useful for
    keeping tabs, it mucks up the business part of the code a lot. I have
    a vauge idea about adding callbacks into the main cpd loop and using
    those for logging, but nothing's there yet.
  • Refactored tests and fixtures, to hopefully make it easier to
    modify/etc in the future. This rewrite mostly happened becuase I
    couldn't bring myself to rip apart the v0.4 test suite without just
    redoing it all.

Note that a lot of the business code in this rewrite was not touched —
this is more of an interface change than anything that affects the
actual math.

cpd - v0.4.3

Published by gadomski almost 8 years ago

  • [FIXED] Bug in rigid result's points.
  • [FIXED] Whitespace in .travis.yml.
  • [ADDED] The affine transformation.
  • [ADDED] Documentation.
  • [ADDED] Seperate script to build/install doxygen on Travis.
  • [CHANGED] Rename affinity_matrix files to affinity.
  • [CHANGED] Refactor test fixtures.
  • [CHANGED] Use googletests's targets, but don't install googletest files.
  • [CHANGED] Fgt is now an optional dependency, that defaults to ON if fgt is present.
  • [CHANGED] If a doxygen executable is present, default to WITH_DOCS=ON.
  • [CHANGED] Move Doxygen.in to a docs/ directory.
cpd - v0.4.2

Published by gadomski almost 8 years ago

  • [FIXED] Denormalization bug for rigid transformations
  • [ADDED] Runtime (in microseconds) to results
  • [ADDED] More information to logging
  • [ADDED] Example of using PDAL and artificial translation
cpd - v0.4.1

Published by gadomski almost 8 years ago

  • [FIXED] Normalization for non-unit-cube point sets.
  • [FIXED] Documentation builds on Travis.
  • [FIXED] Include syntax in normalize.hpp.
  • [FIXED] MSVC warnings.
  • [FIXED] Datatype of Runner.m_max_iterations.
  • [FIXED] Bad AppVeyor link in README.
  • [ADDED] Allow various Fgt strategies.
  • [ADDED] CMake policy CMP0054.
  • [ADDED] sigma2 test for identical points.
  • [ADDED] Better sigma2 logging.
  • [ADDED] Helheim Glacier test data file.
  • [CHANGED] Refactored top-level registration functions to use a more general uplevel upstream function.
  • [CHANGED] ProbabilityComputer to Comparer.
  • [CHANGED] Explicitly build static libs in AppVeyor.
  • [CHANGED] Default to static libs in MSVC.
  • [CHANGED] Precision on sigma2 reporting.
cpd - v0.4.0

Published by gadomski almost 8 years ago

Another complete rewrite. This new version includes logging and much better tests, as well as a hopefully better API.

cpd - v0.3.3

Published by gadomski over 8 years ago

  • [ADDED] Interface to control how fgt behaves, particularily when we use IFGT and when we use direct+tree.
  • [ADDED] Windoze support (#23)
  • [CHANGED] Test against fgt master (instead of a fixed version) on Travis.
cpd - v0.3.2

Published by gadomski over 8 years ago

v0.3.2

  • [ADDED] Affine transformation
  • [ADDED] Version API
  • [ADDED] all.hpp, which includes all registration types
  • [ADDED] Documentation for each file and namespace
  • [CHANGED] Normalize points before running CPD (points are denormalized after run)
  • [FIXED] constexpr static for all double consts
  • [ADDED] Small documentation changes
cpd - v0.3.1

Published by gadomski over 8 years ago

This is just a tiny release to fix the CMake configuration.

  • [FIXED] Find fgt in CMake config script. Downstream usage was broken w/o.
  • [CHANGED] Update Travis's fgt version to v0.4.2
cpd - v0.3.0

Published by gadomski over 8 years ago

A complete rewrite of the library. Includes:

  • Eigin instead of Armadillo.
  • (hopefully) A cleaner API.
  • Templates as well as inheritance to remove returned pointers in API signatures.
  • Reduced functionality, for now (no nonrigid_lowrank or affine).
cpd - v0.2.2

Published by gadomski over 9 years ago

Version v0.2.2 provides a fix for rpath settings that broke executable installation when installing with a non-system CMAKE_INSTALL_PREFIX. Since Ubuntu doesn't search /usr/local/lib for shared libraries by default, our default installation on Ubuntu was broken. This version also incorporates a few other non-library improvements, including the addition of a Vagrantfile for easy Ubuntu setup on unfriendly hosts (here's looking at you, Windoze users) and consolation of some of our basic workflows down to simple makefiles.

cpd - v0.2.1

Published by gadomski over 9 years ago

Adds a new option to remove dependency on the armadillo wrapper library and fixes the gflags integration; a few other minor fixes as well.

  • [FIXED] gflags integration
  • [FIXED] minor documentation fixes
  • [CHANGED] armadillo version used on Travis
  • [ADDED] USE_ARMA_WRAPPER option to (optionally) remove armadillo library dependency
  • [ADDED] minimum armadillo version
cpd - v0.2.0

Published by gadomski over 9 years ago

cpd v0.2.0 includes some new features and a decent amount of reorganization.
Very little has changed in the inner working of the algorithms, however.
For a complete list of changes, please see CHANGES.md or git log v0.1.1..v0.2.0.
Here's a summary of the more significant changes:

  • Bump the required CMake version up to 2.8.12
  • Add cmake configuration scripts to allow easy(er) downstream project integration — see example/ in the main source tree for a demo integration.
  • Registration::operator() was renamed to Registration::run
  • Defaults were changed from UPPER_CASE to CamelCase
  • SpResult was renamed to ResultPtr
  • The Normalization and Result structs were moved into the Registration class
  • The sigma2 parameter can be tweaked a bit more to improve performance and accuracy

As always, please use https://github.com/gadomski/cpd/issues to let us know of any problems or issues with this release.

cpd - v0.1.1

Published by gadomski almost 10 years ago

This is a patch release to the v0.1 branch.

  • [FIXED] Critical bug in rigid registration
  • [ADDED] Automatic library versioning via git-describe
  • [ADDED] version.cpp for inspecting the current git version in code
cpd - v0.1.0

Published by gadomski almost 10 years ago

The initial release of cpd.

Package Rankings
Top 30.16% on Conda-forge.org
Top 6.01% on Alpine-v3.18
Top 10.2% on Alpine-edge
Top 8.17% on Proxy.golang.org
Top 9.37% on Alpine-v3.14
Top 10.67% on Alpine-v3.15
Top 11.4% on Alpine-v3.16
Top 12.42% on Alpine-v3.17
Badges
Extracted from project README
GitHub Workflow Status
Related Projects