Diff of /R/mask_workers.R [000000] .. [242173]

Switch to side-by-side view

--- a
+++ b/R/mask_workers.R
@@ -0,0 +1,107 @@
+
+.make_ss_mask = function(file, mask, verbose, robust, template.file, ...) {
+  if (is.null(mask)) {
+    if (verbose) {
+      message(paste0("# Skull Stripping \n"))
+    }
+    mask = tempfile(fileext = ".nii.gz")
+    ss = CT_Skull_Stripper(
+      img = file,
+      maskfile = mask,
+      verbose = verbose,
+      robust = robust,
+      template.file = template.file,
+      ...)
+    rm(ss)
+  }
+  mask = check_nifti(mask)
+  check_mask_fail(mask)
+  return(mask)
+}
+
+.make_template_mask = function(template.file,
+                               template.mask,
+                               template.inds) {
+  if (is.null(template.mask) &&
+      is.null(template.inds)) {
+    stop("Need template.face_mask or template.face_mask_inds")
+  }
+
+  template.file = checkimg(template.file)
+  if (is.null(template.mask)) {
+    nim = check_nifti(template.file)
+
+    ###############################
+    # using inds
+    ###############################
+    template.mask = niftiarr(nim, 0)
+    inds = expand.grid(template.inds)
+    inds = as.matrix(inds)
+    template.mask[inds] = 1
+    # template.face_mask[50:130, 170:217, 1:15] = 1
+    template.mask = cal_img(template.mask)
+  }
+  template.mask = check_nifti(template.mask, allow.array = TRUE)
+  check_mask_fail(template.mask)
+  return(template.mask)
+}
+
+
+
+.mask_reg = function(file, mask, verbose, swapdim,
+                     template.file, typeofTransform,
+                     template.mask) {
+  file = check_nifti(file)
+  # ofile = tempfile(fileext = '.nii.gz')
+  if (!is.null(mask)) {
+    img = mask_img(file, mask)
+  } else {
+    img = file
+  }
+  rm(list = c("file", "mask"))
+  if (swapdim) {
+    if (verbose) {
+      message(paste0("# Swapping Dimensions \n"))
+    }
+    L = rpi_orient(img)
+    img = L$img
+    sorient = L$orientation
+    ori = L$convention
+  }
+
+  if (verbose) {
+    message("# Template Registration to image\n")
+  }
+
+  # Registration
+  rev_reg = registration(
+    filename = template.file,
+    skull_strip = FALSE,
+    correct = FALSE,
+    template.file = img,
+    typeofTransform = typeofTransform,
+    verbose = verbose)
+
+  if (verbose) {
+    message(paste0("# Applying Transforms to template mask \n"))
+  }
+
+  # Apply Transform to Mask image
+  mask_trans = ants_apply_transforms(
+    fixed = img,
+    moving = template.mask,
+    transformlist = rev_reg$fwdtransforms,
+    interpolator = "nearestNeighbor")
+
+  if (verbose) {
+    message(paste0("# Applying Mask to Original Image \n"))
+  }
+  L = list(mask_trans = mask_trans,
+           img = img)
+  L$fwdtransforms = rev_reg$fwdtransforms
+  if (swapdim) {
+    L$sorient = sorient
+    L$ori = ori
+  }
+  return(L)
+}
\ No newline at end of file