]> Creatis software - FrontAlgorithms.git/blobdiff - appli/CTBronchi/Process.sh
...
[FrontAlgorithms.git] / appli / CTBronchi / Process.sh
diff --git a/appli/CTBronchi/Process.sh b/appli/CTBronchi/Process.sh
new file mode 100755 (executable)
index 0000000..d590b3d
--- /dev/null
@@ -0,0 +1,168 @@
+#!/bin/bash
+
+## -- Command line options
+vesselness_sigma="0.5"
+vesselness_alpha1="0.5"
+vesselness_alpha2="2"
+mori_min_thr="-850"
+mori_kernel="20"
+mori_signal_thr="100"
+mori_signal_influence="0.5"
+mori_lower="-1024"
+mori_upper="0"
+mori_delta="1"
+labels_vesselness_thr="5"
+labels_upper_thr="-400"
+beta="2.5"
+epsilon="1e-5"
+while [[ "$#" -gt 0 ]]; do
+    key="$1"
+    case $key in
+        -input)
+        input=`realpath $2`
+        shift
+        ;;
+        -force)
+        force="1"
+        ;;
+        -vesselness_sigma)
+        vesselness_sigma="$2"
+        shift
+        ;;
+        -vesselness_alpha1)
+        vesselness_alpha1="$2"
+        shift
+        ;;
+        -vesselness_alpha2)
+        vesselness_alpha2="$2"
+        shift
+        ;;
+        -mori_min_thr)
+        mori_min_thr="$2"
+        shift
+        ;;
+        -mori_kernel)
+        mori_kernel="$2"
+        shift
+        ;;
+        -mori_signal_thr)
+        mori_signal_thr="$2"
+        shift
+        ;;
+        -mori_signal_influence)
+        mori_signal_influence="$2"
+        shift
+        ;;
+        -mori_lower)
+        mori_lower="$2"
+        shift
+        ;;
+        -mori_upper)
+        mori_upper="$2"
+        shift
+        ;;
+        -mori_delta)
+        mori_delta="$2"
+        shift
+        ;;
+        -labels_vesselness_thr)
+        labels_vesselness_thr="$2"
+        shift
+        ;;
+        -labels_upper_thr)
+        labels_upper_thr="$2"
+        shift
+        ;;
+        -beta)
+        beta="$2"
+        shift
+        ;;
+        -epsilon)
+        epsilon="$2"
+        shift
+        ;;
+        -seed)
+        seed="$2 $3 $4"
+        shift
+        shift
+        shift
+        ;;
+        *)
+        # Do nothing
+        ;;
+    esac
+    shift
+done
+
+## -- Check command line options
+if [ -z "$input" ] || [ -z "$seed" ] ; then
+    (>&2 echo "Usage: $0 -input <file> -seed <x y z> [-force]")
+    exit 1
+fi
+
+base_dir=`dirname $input | xargs realpath`
+base_name=$base_dir/`basename $input .mhd`
+
+vesselness=$base_name"_vesselness.mhd"
+mori=$base_name"_mori.mhd"
+mori_signal=$base_name"_mori_signal.txt"
+labels=$base_name"_labels.mhd"
+fastrw=$base_name"_fastrw.mhd"
+slicerw=$base_name"_slicerw.mhd"
+
+(>&2 echo "Processing $input... ")
+echo "************************************************"
+if [ ! -f $vesselness ] || [ -n "$force" ] ; then
+    ./fpa_CTBronchi_Vesselness \
+        -i $input -o $vesselness \
+        -s $vesselness_sigma -a $vesselness_alpha1 -b $vesselness_alpha2
+fi
+
+if [ ! -f $mori ] || [ -n "$force" ] ; then
+    ./fpa_CTBronchi_MoriSegmentation \
+        -i $input \
+        -o $mori \
+        -s $mori_signal \
+        -p "$seed" \
+        -t $mori_min_thr \
+        -k $mori_kernel \
+        -r $mori_signal_thr \
+        -f $mori_signal_influence \
+        -l $mori_lower \
+        -u $mori_upper \
+        -d $mori_delta
+fi
+
+if [ ! -f $labels ] || [ -n "$force" ] ; then
+    ./fpa_CTBronchi_MoriLabelling \
+        -i $input \
+        -l $mori \
+        -v $vesselness \
+        -o $labels \
+        -a $labels_vesselness_thr \
+        -u $labels_upper_thr
+fi
+
+if [ ! -f $fastrw ] || [ -n "$force" ] ; then
+    ./fpa_CTBronchi_FastRandomWalker \
+        -i $input \
+        -l $labels \
+        -o $fastrw \
+        -b $beta \
+        -e $epsilon
+fi
+
+if [ ! -f $slicerw ] || [ -n "$force" ] ; then
+    ./fpa_CTBronchi_SliceBySliceRandomWalker \
+        -i $input \
+        -l $mori \
+        -v $vesselness \
+        -o $slicerw \
+        -t $labels_vesselness_thr \
+        -b $beta \
+        -e $epsilon
+fi
+echo "************************************************"
+(>&2 echo "done.")
+
+## eof - $RCSfile$