R/amiralandmarks-io.R
read.landmarks.Rd
Generic functions to read/write landmarks in any supported format
read.landmarks(f, ...)
write.landmarks(
x,
file,
format = "amiralandmarks",
ext = NULL,
Force = FALSE,
MakeDir = TRUE,
...
)
Path to a file (can also be a URL)
Additional arguments passed on to format specific functions
The landmarks object to write. Can also be a plain matrix
or
data.frame
.
The path to the output file. If this does not end in an extension
like .landmarksAscii
, then one will be added based on the value of
the ext
argument.
Character vector specifying output format. Defaults to
"amiralandmarks"
. Partial matching is used (e.g. amira is
sufficient).
Optional character vector specifying a new or non-standard
extension to use for output file, including the period (e.g.
ext='.am'
). When ext=NULL
, the default, the default extension
for the selected format
will be added if f
does not have an
extension. When ext=NA
, the extension will not be modified and no
extension will be appended if f
does not have one.
Whether to overwrite an existing file
Whether to create directory implied by file
argument.
for read.landmarks
a matrix or list of additional class
landmarks, where the rownames specify the names of each landmark if
available.
For write.landmarks
the path to the written file, invisibly.
Presently the supported formats are
Amira (format name amiralandmarks
)
CMTK (format name cmtklandmarks
)
Fiji (format name fijilandmarks
) see
https://imagej.net/plugins/name-landmarks-and-register
See examples section for how to produce a listing of all currently
available formats with fileformats
.
Only the amiralandmarks
format supports the use
of paired landmarks
## Listing of supported fileformats for landmarks
fileformats(class = 'landmarks', rval = "info")
#> format class ext read write magic
#> 1 amiralandmarks landmarks .landmarkAscii TRUE TRUE TRUE
#> 2 amiralandmarks landmarks .landmarkBin TRUE TRUE TRUE
#> 3 amiralandmarks landmarks .am TRUE TRUE TRUE
#> 4 amiralandmarks landmarks .amiramesh TRUE TRUE TRUE
#> 5 cmtklandmarks landmarks .landmarks TRUE TRUE TRUE
#> 6 fijilandmarks landmarks .points TRUE TRUE TRUE
## round trip tests
m=matrix(rnorm(6), ncol=3)
rownames(m)=c("nose", "ear")
f=write.landmarks(m, file='knee', format='cmtk')
read.landmarks(f)
#> [,1] [,2] [,3]
#> nose -1.6208653 -0.5044217 0.46185119
#> ear 0.3622211 0.8479437 -0.09037168
#> attr(,"class")
#> [1] "landmarks" "matrix" "array"
# write in amira format which does not support named landmarks
f2=write.landmarks(m, file='knee', format='amira')
read.landmarks(f2)
#> [,1] [,2] [,3]
#> [1,] -1.6208653 -0.5044217 0.46185119
#> [2,] 0.3622211 0.8479437 -0.09037168
#> attr(,"class")
#> [1] "landmarks" "matrix" "array"
# clean up
unlink(c(f,f2))