mirror landmarks or triangular mesh in place
mirror landmarks or triangular mesh in place
mirror(x, icpiter = 50, subsample = NULL, pcAlign = FALSE, mirroraxis = 1, initPC = TRUE, initCenter = TRUE, mc.cores = 2) ## S3 method for class 'matrix' mirror(x, icpiter = 50, subsample = NULL, pcAlign = FALSE, mirroraxis = 1, initPC = TRUE, initCenter = TRUE, mc.cores = 2) ## S3 method for class 'mesh3d' mirror(x, icpiter = 50, subsample = NULL, pcAlign = FALSE, mirroraxis = 1, initPC = TRUE, initCenter = TRUE, mc.cores = 2)
x |
k x 3 matrix or mesh3d |
icpiter |
integer: number of iterations to match reflected configuration onto original one |
subsample |
integer: use only a subset for icp matching |
pcAlign |
if TRUE, the icp will be preceeded by an alignment of the principal axis (only used if icpiter > 0), currently only works for 3D data. |
mirroraxis |
integer: which axis to mirror at |
initPC |
logical: if TRUE the data will be prealigned by its principal axes. |
initCenter |
logical: if TRUE and |
mc.cores |
use parallel processing to find best alignment to original shape. |
reflect a mesh configuration at the plane spanned by its first 2 principal axis, then try to rigidily register the reflected configuration onto the original one using iterative closest point search to establish correspondences.
returns the reflected object
data(boneData) boneMir <- mirror(boneLM[,,1],icpiter=50,mc.cores=2,mirroraxis=3) ## 2D Example: if (require(shapes)) { gorfMir <- mirror(gorf.dat[,,1],mirroraxis=2,pcAlign=TRUE,icpiter = 0) plot(gorfMir,asp = 1) points(gorf.dat[,,1],col=3) } ## Not run: ## now mirror a complete mesh require(rgl) skullMir <- mirror(skull_0144_ch_fe.mesh,icpiter=10,subsample = 30, mc.cores=2,mirroraxis=3,pcAlign=TRUE) ###compare result to original wire3d(skull_0144_ch_fe.mesh,col=3) wire3d(skullMir,col=2) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.