|
a |
|
b/R/ct_dcm2nii.R |
|
|
1 |
|
|
|
2 |
#' CT DICOM to NIfTI conversion |
|
|
3 |
#' |
|
|
4 |
#' @param basedir (character) directory to get files |
|
|
5 |
#' @param merge_files Should files be merged, passed do \code{\link{dcm2nii}} |
|
|
6 |
#' options |
|
|
7 |
#' @param verbose print diagnostic messages |
|
|
8 |
#' @param drop_dim passed to \code{\link{readnii}} for dropping empty |
|
|
9 |
#' dimensions |
|
|
10 |
#' @param ... Additional parameters passed to \code{\link{dcm2nii}} |
|
|
11 |
#' @param ignore_roi_if_multiple additional argument to pass to |
|
|
12 |
#' \code{\link{check_dcm2nii}} to remove ROI overlays if present |
|
|
13 |
#' |
|
|
14 |
#' @return A list or singular \code{nifti} image |
|
|
15 |
#' @export |
|
|
16 |
#' |
|
|
17 |
#' @importFrom dcm2niir dcm2nii check_dcm2nii |
|
|
18 |
#' @importFrom neurobase rescale_img check_nifti |
|
|
19 |
ct_dcm2nii = function(basedir = ".", merge_files = TRUE, |
|
|
20 |
verbose = TRUE, |
|
|
21 |
drop_dim = TRUE, ..., |
|
|
22 |
ignore_roi_if_multiple = FALSE, |
|
|
23 |
fail_on_error = FALSE) { |
|
|
24 |
if (!merge_files) { |
|
|
25 |
warning( |
|
|
26 |
paste0( |
|
|
27 |
"ichseg < v0.19.0 had overridden merge_files = FALSE (bug),", |
|
|
28 |
" please be aware for reproducibility." |
|
|
29 |
) |
|
|
30 |
) |
|
|
31 |
} |
|
|
32 |
out = dcm2nii(basedir, merge_files = merge_files, verbose = verbose, |
|
|
33 |
...) |
|
|
34 |
if (fail_on_error && out$result > 0) { |
|
|
35 |
stop("Error in result from dcm2nii and fail_on_error = TRUE") |
|
|
36 |
} |
|
|
37 |
res = check_dcm2nii(out, ignore_roi_if_multiple = ignore_roi_if_multiple) |
|
|
38 |
img = lapply(res, function(x){ |
|
|
39 |
if (verbose) { |
|
|
40 |
message("# reading in image") |
|
|
41 |
} |
|
|
42 |
img = check_nifti(res, drop_dim = drop_dim) |
|
|
43 |
if (verbose) { |
|
|
44 |
message("# rescaling data") |
|
|
45 |
} |
|
|
46 |
img = rescale_img(img, min.val = -1024, |
|
|
47 |
max.val = 3071, |
|
|
48 |
drop_dim = drop_dim) |
|
|
49 |
}) |
|
|
50 |
if (length(res) == 1) { |
|
|
51 |
img = img[[1]] |
|
|
52 |
} |
|
|
53 |
attr(img, "dcm2nii_result") = out$result |
|
|
54 |
return(img) |
|
|
55 |
} |