Skip to content

Commit 21d3459

Browse files
authored
Merge pull request #1373 from ANTsX/atroposDenoiseFix
ENH: Denoise all anatomical images, but outside of loop
2 parents d30526f + c112fc2 commit 21d3459

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

Scripts/antsAtroposN4.sh

+20-17
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ for (( i = 1; i <= $ATROPOS_SEGMENTATION_NUMBER_OF_CLASSES; i++ ))
346346
NUMBER_OF_PRIOR_IMAGES=${#PRIOR_IMAGE_FILENAMES[*]}
347347

348348
INITIALIZE_WITH_KMEANS=0
349-
if [[ ${NUMBER_OF_PRIOR_IMAGES} -eq 0 ]];
349+
if [[ -z "${ATROPOS_SEGMENTATION_PRIORS}" ]];
350350
then
351351
echo "Initializing with kmeans segmentation."
352352
INITIALIZE_WITH_KMEANS=1
@@ -391,7 +391,8 @@ ATROPOS_SEGMENTATION_POSTERIORS=${ATROPOS_SEGMENTATION_OUTPUT}Posteriors%${FORMA
391391
################################################################################
392392
#
393393
# Preprocess anatomical images
394-
# 1. Denoise input images (if requested)
394+
# 1. Truncate input intensity (needed for N4)
395+
# 1. Denoise image (if requested)
395396
#
396397
################################################################################
397398

@@ -406,6 +407,20 @@ if [[ ${DENOISE_ANATOMICAL_IMAGES} -ne 0 ]];
406407
fi
407408
fi
408409

410+
# Anatomical images that have been truncated, and optionally denoised
411+
SEGMENTATION_PREPROCESSED_IMAGES=()
412+
413+
for (( j = 0; j < ${#ANATOMICAL_IMAGES[@]}; j++ ))
414+
do
415+
SEGMENTATION_PREPROCESSED_IMAGES=( ${SEGMENTATION_PREPROCESSED_IMAGES[@]} ${ATROPOS_SEGMENTATION_OUTPUT}PreprocessedAnatomical${j}.${OUTPUT_SUFFIX} )
416+
# Truncate on the whole head to get outliers over the whole volume, without losing contrast in the brain
417+
logCmd ${ANTSPATH}/ImageMath ${DIMENSION} ${SEGMENTATION_PREPROCESSED_IMAGES[$j]} TruncateImageIntensity ${ANATOMICAL_IMAGES[$j]} 0 0.995 256
418+
if [[ ${DENOISE_ANATOMICAL_IMAGES} -ne 0 ]];
419+
then
420+
logCmd ${ANTSPATH}/DenoiseImage -d ${DIMENSION} -i ${SEGMENTATION_PREPROCESSED_IMAGES[$j]} -o ${SEGMENTATION_PREPROCESSED_IMAGES[$j]} --verbose 1
421+
fi
422+
done
423+
409424
################################################################################
410425
#
411426
# Segmentation
@@ -448,22 +463,10 @@ POSTERIOR_PROBABILITY_CONVERGED=0
448463
for (( i = 0; i < ${N4_ATROPOS_NUMBER_OF_ITERATIONS}; i++ ))
449464
do
450465
SEGMENTATION_N4_IMAGES=()
451-
for(( j = 0; j < ${#ANATOMICAL_IMAGES[@]}; j++ ))
466+
for (( j = 0; j < ${#ANATOMICAL_IMAGES[@]}; j++ ))
452467
do
453468
SEGMENTATION_N4_IMAGES=( ${SEGMENTATION_N4_IMAGES[@]} ${ATROPOS_SEGMENTATION_OUTPUT}${j}N4.${OUTPUT_SUFFIX} )
454-
if [[ $j == 0 ]];
455-
then
456-
# BA edit - forcing the image to copy physical space due to ITK bug images do not occupy same space
457-
# Truncate on the whole image, not just within the brain - avoids losing brain contrast
458-
logCmd ${ANTSPATH}/ImageMath ${DIMENSION} ${SEGMENTATION_N4_IMAGES[$j]} TruncateImageIntensity ${ANATOMICAL_IMAGES[$j]} 0 0.995 256
459-
if [[ ${DENOISE_ANATOMICAL_IMAGES} -ne 0 ]];
460-
then
461-
logCmd ${ANTSPATH}/DenoiseImage -d ${DIMENSION} -i ${SEGMENTATION_N4_IMAGES[$j]} -o ${SEGMENTATION_N4_IMAGES[$j]} --verbose 1
462-
fi
463-
else
464-
cp ${ANATOMICAL_IMAGES[$j]} ${SEGMENTATION_N4_IMAGES[$j]}
465-
fi
466-
exe_n4_correction="${N4} -d ${DIMENSION} -i ${SEGMENTATION_N4_IMAGES[$j]} -x ${ATROPOS_SEGMENTATION_MASK} -s ${N4_SHRINK_FACTOR} -c ${N4_CONVERGENCE} -b ${N4_BSPLINE_PARAMS} -o ${SEGMENTATION_N4_IMAGES[$j]} --verbose 1"
469+
exe_n4_correction="${N4} -d ${DIMENSION} -i ${SEGMENTATION_PREPROCESSED_IMAGES[$j]} -x ${ATROPOS_SEGMENTATION_MASK} -s ${N4_SHRINK_FACTOR} -c ${N4_CONVERGENCE} -b ${N4_BSPLINE_PARAMS} -o ${SEGMENTATION_N4_IMAGES[$j]} --verbose 1"
467470
if [[ -f ${SEGMENTATION_WEIGHT_MASK} ]];
468471
then
469472
exe_n4_correction="${exe_n4_correction} -w ${SEGMENTATION_WEIGHT_MASK}"
@@ -586,7 +589,7 @@ for (( i = 0; i < ${N4_ATROPOS_NUMBER_OF_ITERATIONS}; i++ ))
586589

587590
done
588591

589-
TMP_FILES=( $SEGMENTATION_WEIGHT_MASK ${POSTERIOR_IMAGE_FILENAMES_PREVIOUS_ITERATION[@]} ${SEGMENTATION_PREVIOUS_ITERATION} )
592+
TMP_FILES=( $SEGMENTATION_WEIGHT_MASK ${POSTERIOR_IMAGE_FILENAMES_PREVIOUS_ITERATION[@]} ${SEGMENTATION_PREVIOUS_ITERATION} ${SEGMENTATION_PREPROCESSED_IMAGES[@]} )
590593

591594
if [[ $KEEP_TMP_IMAGES -eq 0 ]];
592595
then

0 commit comments

Comments
 (0)