X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=scripts%2Fcreate_midP-2.0.sh;h=1f18830311102decf806136bd23f1c7ef4ca9a97;hb=9548105324e0d1e8d440a1e1d83faf37ebcf1c08;hp=93290c860baca2be7924e711ede155c768857be8;hpb=66d21002b1ea9e439731fa624836705f8bc34847;p=clitk.git diff --git a/scripts/create_midP-2.0.sh b/scripts/create_midP-2.0.sh index 93290c8..1f18830 100755 --- a/scripts/create_midP-2.0.sh +++ b/scripts/create_midP-2.0.sh @@ -38,7 +38,7 @@ registration() # with the specified preffix, which is interesting for debugging. # if blank, it means that the original images (those without bands) # will be used (see create_midP_masks-2.0.sh for details). - banded="banded_" + banded="" # params read from conf file params="$nb_iter $nb_samples $sampling_algo $nb_hist_bins $nb_levels $bspline_spacing $metric $optimizer $interpolator" @@ -76,12 +76,25 @@ registration() registration_elastix $reference_out $target_out $mask_ref_out $mask_targ_out $vf_out $result_out $params $log_out fi - # combine in and out vf motion_mask=$mask_dir/mm_$phase_nb.mhd + + # combine in and out results + out_result=$output_dir/result_${ref_phase_nb}_$phase_nb.mhd + clitkCombineImage -i $result_in -j $result_out -m $motion_mask -o $out_result + abort_on_error registration $? clean_up_registration + + # combine in and out vf vf_result=$vf_dir/vf_${ref_phase_nb}_$phase_nb.mhd clitkCombineImage -i $vf_in -j $vf_out -m $motion_mask -o $vf_result + abort_on_error registration $? clean_up_registration + clitkZeroVF -i $vf_in -o vf_zero.mhd + abort_on_error registration $? clean_up_registration + + patient_mask=$mask_dir/patient_mask_$phase_nb.mhd clitkCombineImage -i $vf_result -j vf_zero.mhd -m $patient_mask -o $vf_result + abort_on_error registration $? clean_up_registration + rm vf_zero.* # save for later... @@ -89,11 +102,30 @@ registration() fi done - # create (zero) vf from reference to reference + # create (zero) vf from reference to reference and associated images + vf_in=$vf_dir/vf_inside_${ref_phase_nb}_${ref_phase_nb}.mhd + vf_out=$vf_dir/vf_outside_${ref_phase_nb}_${ref_phase_nb}.mhd clitkZeroVF -i $vf_ref -o $vf_dir/vf_${ref_phase_nb}_${ref_phase_nb}.mhd + clitkZeroVF -i $vf_ref -o $vf_in + clitkZeroVF -i $vf_ref -o $vf_out + abort_on_error registration $? clean_up_registration + + motion_mask=$mask_dir/mm_${ref_phase_nb}.mhd + reference_in=$mask_dir/${banded}inside_${ref_phase_nb}.mhd + reference_out=$mask_dir/${banded}outside_$ref_phase_nb.mhd + out_result=$output_dir/result_${ref_phase_nb}_${ref_phase_nb}.mhd + clitkCombineImage -i $reference_in -j $reference_out -m $motion_mask -o $out_result + abort_on_error registration $? clean_up_registration # create 4D vf create_mhd_4D_pattern.sh $vf_dir/vf_${ref_phase_nb}_ + create_mhd_4D_pattern.sh $vf_dir/vf_inside_${ref_phase_nb}_ + create_mhd_4D_pattern.sh $vf_dir/vf_outside_${ref_phase_nb}_ + + # create 4D result image + create_mhd_4D_pattern.sh $output_dir/result_inside_${ref_phase_nb}_ + create_mhd_4D_pattern.sh $output_dir/result_outside_${ref_phase_nb}_ + create_mhd_4D_pattern.sh $output_dir/result_${ref_phase_nb}_ echo echo "-------- Registration done ! --------" @@ -116,24 +148,30 @@ midp() ########### calculate the midp wrt the reference phase phase_nb=$ref_phase_nb echo "Calculating midp_$phase_nb.mhd..." - vf_midp=$midp_dir/vf_$phase_nb\_midp.mhd + vf_midp=$midp_dir/vf_midp_$phase_nb.mhd midp=$midp_dir/midp_$phase_nb.mhd # average the vf's from reference phase to phase clitkAverageTemporalDimension -i $vf_dir/vf_${ref_phase_nb}_4D.mhd -o $vf_midp + abort_on_error midp $? clean_up_midp + # invert the vf (why?) clitkInvertVF -i $vf_midp -o $vf_midp + abort_on_error midp $? clean_up_midp + # create the midp by warping the reference phase with the reference vf clitkWarpImage -i $ref_phase_file -o $midp --vf=$vf_midp -s 1 + abort_on_error midp $? clean_up_midp ref_vf_midp=$vf_midp ref_midp=$midp clitkImageConvert -i $ref_midp -o $ref_midp -t float + abort_on_error midp $? clean_up_midp ########### calculate the midp wrt the other phases for i in $( seq 0 $((${#phase_files[@]} - 1))); do phase_file=${phase_files[$i]} phase_nb=${phase_nbs[$i]} - vf_midp=$midp_dir/vf_$phase_nb\_midp.mhd + vf_midp=$midp_dir/vf_midp_$phase_nb.mhd midp=$midp_dir/midp_$phase_nb.mhd if [ "$phase_nb" != "$ref_phase_nb" ]; then @@ -141,19 +179,30 @@ midp() # calculate vf from phase to midp, using the vf from reference phase to midp (-i) # and the vf from reference phase to phase (-j) clitkComposeVF -i $ref_vf_midp -j $vf_dir/vf_$ref_phase_nb\_$phase_nb.mhd -o $vf_midp + abort_on_error midp $? clean_up_midp + clitkWarpImage -i $phase_file -o $midp --vf=$vf_midp -s 1 + abort_on_error midp $? clean_up_midp + clitkImageConvert -i $midp -o $midp -t float + abort_on_error midp $? clean_up_midp fi done + # create 4D midp create_mhd_4D_pattern.sh $midp_dir/midp_ + create_mhd_4D_pattern.sh $midp_dir/vf_midp_ + echo "Calculating midp_avg.mhd..." clitkAverageTemporalDimension -i $midp_dir/midp_4D.mhd -o $midp_dir/midp_avg.mhd + abort_on_error midp $? clean_up_midp + echo "Calculating midp_med.mhd..." clitkMedianTemporalDimension -i $midp_dir/midp_4D.mhd -o $midp_dir/midp_med.mhd + abort_on_error midp $? clean_up_midp # clean-up - rm $midp_dir/vf_* + #rm $midp_dir/vf_* echo echo "-------- Mid-position done ! --------" @@ -184,6 +233,8 @@ ref_phase=$2 conf=$3 source $conf +cd `dirname $mhd4d` + mkdir -p $log_dir mask_dir="MASK-${mask_interpolation_spacing}mm-$mask_interpolation_algorithm"