This function extracts contours from a neuroimaging NIFTI file where values change according to specified levels.
It processes the NIFTI file with neuroCleaner to extract structured neuroimaging data, then extracts contours
using contoureR::getContourLines. These contours serve as input for Triangulation::TriMesh,
which is used in Simultaneous Confidence Corridors (SCCs) calculations.
While not mandatory, it is highly recommended that the input NIFTI file be pre-processed
such that zero values represent the background and non-zero values represent regions of interest.
The function's default behavior extracts contours at level 0, which is ideal for well-masked data.
Usage
neuroContour(niftiFile, paramZ = 35, levels = c(0), plotResult = FALSE)Arguments
- niftiFile
character, the path to the NIFTI file containing neuroimaging data. Ideally, the file should be masked so that zero values represent the background.- paramZ
integer, the specific z-slice to extract contours from. Default is35.- levels
numeric, a vector of levels at which to draw the contours. Default isc(0).- plotResult
logical, ifTRUE, plots the extracted contours. Default isFALSE.
Value
A list of data frames, where each data frame contains the x and y coordinates of a contour.
The first element typically represents the external boundary, while subsequent elements (if present)
represent internal contours or holes. Each data frame has two columns:
x– x-coordinates of the contour points.y– y-coordinates of the contour points.
Details
This function extracts contours from a NIFTI file, typically a masked image where background values
are set to zero, and regions of interest contain non-zero values. While users can specify a different
boundary level, the recommended approach is to use levels = 0 for masked data.
The extracted contours are typically used as input to Triangulation::TriMesh to create
a triangular mesh of the region, which is then used for Simultaneous Confidence Corridors calculations.
See also
getContourLines for the underlying contour extraction. Triangulation::TriMesh for the next step in the SCC calculation process.
Examples
# Get the file path for a sample NIfTI file
niftiFile <- system.file("extdata", "syntheticControl1.nii.gz", package = "neuroSCC")
# Extract contours at level 0
contours <- neuroContour(niftiFile, paramZ = 35, levels = 0, plotResult = TRUE)
# Display the first few points of the main contour
head(contours[[1]])
#> x y
#> 1 8 44
#> 2 9 43
#> 3 9 43
#> 4 9 42
#> 5 9 42
#> 6 9 41
