X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=scripts%2Fcreate_midP_masks-2.0.sh;h=bbf44f0fa9a857da69581133681ddb046f715905;hb=c134c94d6663e0678a41f801a96c81501f632887;hp=68560cae1c76750fbe9319f95dc224d53c5fa6eb;hpb=66d21002b1ea9e439731fa624836705f8bc34847;p=clitk.git diff --git a/scripts/create_midP_masks-2.0.sh b/scripts/create_midP_masks-2.0.sh index 68560ca..bbf44f0 100755 --- a/scripts/create_midP_masks-2.0.sh +++ b/scripts/create_midP_masks-2.0.sh @@ -1,5 +1,5 @@ -#! /bin/bash -x - +#! /bin/bash + ############################################################################### # # FILE: create_midP-2.0.sh @@ -21,7 +21,10 @@ extract_patient() { echo "$phase_file -> Extracting patient..." clitkExtractPatient -i $phase_file -o $mask_dir_tmp/patient_mask_$phase_nb.mhd --noAutoCrop -a $afdb_file $ExtractPatientExtra +# abort_on_error clitkExtractPatient $? + clitkSetBackground -i $phase_file -o $mask_dir_tmp/patient_$phase_nb.mhd --mask $mask_dir_tmp/patient_mask_$phase_nb.mhd --outsideValue -1000 +# abort_on_error clitkSetBackground $? } extract_bones() @@ -39,15 +42,16 @@ extract_bones() extract_lungs() { - echo "$phase_file -> Extracting lungs..." - clitkExtractLung -i $phase_file -o $mask_dir_tmp/lungs_$phase_nb.mhd -a $afdb_file --noAutoCrop + echo "$phase_file -> Extracting lungs..." + clitkExtractLung -i $phase_file -o $mask_dir_tmp/lungs_$phase_nb.mhd -a $afdb_file --noAutoCrop --doNotSeparateLungs } + + resample() { echo "$phase_file -> Resampling..." clitkResampleImage -i $mask_dir_tmp/patient_$phase_nb.mhd -o $mask_dir_tmp/patient_$phase_nb.mhd --spacing $resample_spacing --interp $resample_algo - clitkResampleImage -i $mask_dir_tmp/lungs_$phase_nb.mhd -o $mask_dir_tmp/lungs_$phase_nb.mhd --like $mask_dir_tmp/patient_$phase_nb.mhd } @@ -60,7 +64,7 @@ compute_motion_mask() FillingLevel=94 fi - clitkMotionMask -i $mask_dir_tmp/patient_$phase_nb.mhd -o $mask_dir_tmp/mm_$phase_nb.mhd --featureLungs $mask_dir_tmp/lungs_$phase_nb.mhd --upperThresholdLungs -400 --fillingLevel $FillingLevel --offsetDetect 0,-5,0 --pad --writeFeature=$mask_dir_tmp/feature_$phase_nb.mhd $MotionMaskExtra + clitkMotionMask -i $mask_dir_tmp/patient_$phase_nb.mhd -o $mask_dir_tmp/mm_$phase_nb.mhd --featureLungs $mask_dir_tmp/lungs_$phase_nb.mhd --upperThresholdLungs -400 --fillingLevel $FillingLevel --offsetDetect $MotionMaskOffsetDetect --pad --writeFeature=$mask_dir_tmp/feature_$phase_nb.mhd $MotionMaskExtra #--monitor=$mask_dir_tmp/monitor_$phase_nb.mhd } @@ -143,12 +147,14 @@ motion_mask() resample_spacing=$2 resample_algo=$3 - # import variables specific to each patient - source variables - dir=`dirname $1` cd $dir + # import variables specific to each patient + if test -e ./variables; then + source ./variables + fi + #set other global variables mask_dir="MASK-${resample_spacing}mm-$resample_algo" mask_dir_tmp="tmp.$mask_dir" @@ -196,6 +202,7 @@ motion_mask() mkdir -p $mask_log_dir # multi-threaded pre-processing for motion mask calcs + pids=( ) for i in $( seq 0 $((${#phase_nbs[@]} - 1))); do phase_nb=${phase_nbs[$i]} phase_file=${phase_files[$i]} @@ -203,6 +210,12 @@ motion_mask() check_threads $MAX_THREADS mm_preprocessing & + pids=( "${pids[@]}" "$!" ) + done + + wait_pids ${pids[@]} + for ret in $ret_codes; do + abort_on_error mm_preprocessing $ret clean_up_masks done # single-threaded motion mask calc @@ -213,17 +226,26 @@ motion_mask() check_threads 1 echo "$phase_file -> Computing motion mask..." compute_motion_mask > $mask_log_dir/motion_mask_$phase_file.log + abort_on_error compute_motion_mask $? clean_up_masks done # multi-threaded post-processing of motion mask calcs + pids=( ) for i in $( seq 0 $((${#phase_nbs[@]} - 1))); do phase_nb=${phase_nbs[$i]} phase_file=${phase_files[$i]} check_threads $MAX_THREADS mm_postprocessing & + pids=( "${pids[@]}" "$!" ) + done + + wait_pids ${pids[@]} + for ret in $ret_codes; do + abort_on_error mm_postprocessing $ret clean_up_masks done + # rename tmp mask directory after mask creation check_threads 1 mv -f $mask_dir_tmp $mask_dir