Previously, the warpcorrect command required manual specification of either a single scalar value or a triplet of values that represents the "fill value" inserted by some other software package in voxels where no warp information is available.
With #3300, warpvalidate can scan the content of the image for prospective fill values, and an attempt to auto-determine the fill value is made based on its prevalence in the input image.
In processing a dataset I've found that ANTs is using fill values that are unique for each input and not equal for all three axes. I therefore think I'm currently forced to manually sample the fill value of each image before running warpcorrect. And I dislike barriers to automation.
Previously, the
warpcorrectcommand required manual specification of either a single scalar value or a triplet of values that represents the "fill value" inserted by some other software package in voxels where no warp information is available.With #3300,
warpvalidatecan scan the content of the image for prospective fill values, and an attempt to auto-determine the fill value is made based on its prevalence in the input image.In processing a dataset I've found that ANTs is using fill values that are unique for each input and not equal for all three axes. I therefore think I'm currently forced to manually sample the fill value of each image before running
warpcorrect. And I dislike barriers to automation.std::map<Eigen::Array<ValueType, 3, 1>, size_t, Compare>, counting the number of appearances of each value triplet.MR::Registration::Warp::WarpValidation::fill_valuewill need to be changed to astd::optional<Eigen::Array<default_type, 3, 1>>.warpcorrect, import the 3-vector out-of-bounds marker.