X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FCTBronchi%2FFunctions.h;h=cfbbcfe369190e4170b5a6b34af5d3162a87d4a3;hb=b4c7827278cd914c18ee5404fb636c87e8099b24;hp=272c974f81162e429a8fba9e6ac3ac3b226fbabf;hpb=b69a5d04d117c1fdd297999c4fb034db54911aca;p=FrontAlgorithms.git diff --git a/appli/CTBronchi/Functions.h b/appli/CTBronchi/Functions.h index 272c974..cfbbcfe 100644 --- a/appli/CTBronchi/Functions.h +++ b/appli/CTBronchi/Functions.h @@ -6,6 +6,8 @@ #define __CTBronchi__Functions__h__ #include +#include +#include #include #include @@ -50,6 +52,80 @@ namespace CTBronchi std::cout << "Wrote " << fname << " in " << t << " s" << std::endl; } + // ----------------------------------------------------------------------- + bool ParseArgs( + std::map< std::string, std::string >& args, int argc, char* argv[] + ) + { + std::set< std::string > mandatory; + mandatory.insert( "in" ); + mandatory.insert( "out" ); + mandatory.insert( "seed" ); + + args[ "mori_minimum_threshold" ] = "-850"; + args[ "mori_signal_kernel_size" ] = "20"; + args[ "mori_signal_threshold" ] = "100"; + args[ "mori_signal_influence" ] = "0.5"; + args[ "mori_lower_threshold" ] = "-1024"; + args[ "mori_upper_threshold" ] = "0"; + args[ "mori_delta_threshold" ] = "1"; + args[ "labelling_upper_threshold" ] = "-550"; + args[ "random_walker_alpha" ] = "1"; + args[ "random_walker_beta" ] = "100"; + + int i = 1; + while( i < argc ) + { + std::string cmd = argv[ i ] + 1; + if( cmd == "seed" ) + { + std::stringstream seed; + seed + << argv[ i + 1 ] << ";" + << argv[ i + 2 ] << ";" + << argv[ i + 3 ]; + args[ cmd ] = seed.str( ); + i += 4; + } + else + { + args[ cmd ] = argv[ i + 1 ]; + i += 2; + + } // fi + + } // elihw + + bool complete = true; + for( std::string t: mandatory ) + complete &= ( args.find( t ) != args.end( ) ); + + if( !complete ) + { + std::cerr + << "Usage: " << argv[ 0 ] << std::endl + << "\t-in filename" << std::endl + << "\t-out filename" << std::endl + << "\t-seed x y z" << std::endl + << "\t[-out_mori filename]" << std::endl + << "\t[-out_signal filename]" << std::endl + << "\t[-out_labels filename]" << std::endl + << "\t[-mori_minimum_threshold value]" << std::endl + << "\t[-mori_signal_kernel_size value]" << std::endl + << "\t[-mori_signal_threshold value]" << std::endl + << "\t[-mori_signal_influence value]" << std::endl + << "\t[-mori_lower_threshold value]" << std::endl + << "\t[-mori_upper_threshold value]" << std::endl + << "\t[-mori_delta_threshold value]" << std::endl + << "\t[-labelling_upper_threshold value]" << std::endl + << "\t[-random_walker_alpha value]" << std::endl + << "\t[-random_walker_beta value]" << std::endl; + return( false ); + + } // fi + return( true ); + } + } // ecapseman #endif // __CTBronchi__Functions__h__