@@ -346,7 +346,7 @@ for (( i = 1; i <= $ATROPOS_SEGMENTATION_NUMBER_OF_CLASSES; i++ ))
346
346
NUMBER_OF_PRIOR_IMAGES=${# PRIOR_IMAGE_FILENAMES[*]}
347
347
348
348
INITIALIZE_WITH_KMEANS=0
349
- if [[ ${NUMBER_OF_PRIOR_IMAGES} -eq 0 ]];
349
+ if [[ -z " ${ATROPOS_SEGMENTATION_PRIORS} " ]];
350
350
then
351
351
echo " Initializing with kmeans segmentation."
352
352
INITIALIZE_WITH_KMEANS=1
@@ -391,7 +391,8 @@ ATROPOS_SEGMENTATION_POSTERIORS=${ATROPOS_SEGMENTATION_OUTPUT}Posteriors%${FORMA
391
391
# ###############################################################################
392
392
#
393
393
# Preprocess anatomical images
394
- # 1. Denoise input images (if requested)
394
+ # 1. Truncate input intensity (needed for N4)
395
+ # 1. Denoise image (if requested)
395
396
#
396
397
# ###############################################################################
397
398
@@ -406,6 +407,20 @@ if [[ ${DENOISE_ANATOMICAL_IMAGES} -ne 0 ]];
406
407
fi
407
408
fi
408
409
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
+
409
424
# ###############################################################################
410
425
#
411
426
# Segmentation
@@ -448,22 +463,10 @@ POSTERIOR_PROBABILITY_CONVERGED=0
448
463
for (( i = 0 ; i < ${N4_ATROPOS_NUMBER_OF_ITERATIONS} ; i++ ))
449
464
do
450
465
SEGMENTATION_N4_IMAGES=()
451
- for(( j = 0 ; j < ${# ANATOMICAL_IMAGES[@]} ; j++ ))
466
+ for (( j = 0 ; j < ${# ANATOMICAL_IMAGES[@]} ; j++ ))
452
467
do
453
468
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"
467
470
if [[ -f ${SEGMENTATION_WEIGHT_MASK} ]];
468
471
then
469
472
exe_n4_correction=" ${exe_n4_correction} -w ${SEGMENTATION_WEIGHT_MASK} "
@@ -586,7 +589,7 @@ for (( i = 0; i < ${N4_ATROPOS_NUMBER_OF_ITERATIONS}; i++ ))
586
589
587
590
done
588
591
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[@]} )
590
593
591
594
if [[ $KEEP_TMP_IMAGES -eq 0 ]];
592
595
then
0 commit comments