cpd | R Documentation |
Affine and rigid registration of two point sets using the coherent point drift algorithm. See: Myronenko A., Song X. (2010): "Point-Set Registration: Coherent Point Drift", IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 32, issue 12, pp. 2262-2275.
cpd( X, Y, w = 0, weights = NULL, scale = FALSE, maxIter = 100, subsample = NULL, tol = 1e-04 )
X |
reference point set, a N x D matrix |
Y |
point set to transform, a M x D matrix, |
w |
noise weight in the range [0, 1) |
weights |
a M x N matrix of point correspondence weights |
scale |
logical (default: FALSE), whether to use scaling |
maxIter |
maximum number of iterations to perform (default: 100) |
subsample |
if set, use this randomly selected fraction of the points |
tol |
tolerance for determining convergence |
a list of
Y: transformed point set,
R: rotation matrix,
t: translation vector,
s: scaling factor,
P: matrix of correspondence probabilities between the two point sets,
sigma: final variance,
iter: number of iterations performed,
converged: boolean, whether the algorithm has converged.
data.file1 <- system.file("test_data", "parasaurolophusA.txt", package = "LOMAR", mustWork = TRUE) PS1 <- read.csv(data.file1, sep = '\t', header = FALSE) data.file2 <- system.file("test_data", "parasaurolophusB.txt", package = "LOMAR", mustWork = TRUE) PS2 <- read.csv(data.file2, sep = '\t', header = FALSE) transformation <- cpd(PS1, PS2, maxIter = 10, tol = 1e-3) ## Not run: # Visualize registration outcome library(rgl) plot3d(PS1, col = "blue") points3d(PS2, col = "green") points3d(transformation[['Y']], col = "magenta") ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.