17 #include "itksys/SystemTools.hxx" 45 void onFitEvent(::itk::Object* caller,
const itk::EventObject & event,
void* )
47 itk::ProgressEvent progressEvent;
49 if (progressEvent.CheckEvent(&event))
52 std::cout <<castedReporter->
GetProgress()*100 <<
"% ";
62 parser.
setDescription(
"MiniApp that allows to generate curve descriptor maps for dynamic image.");
77 "Output file template",
78 "where to save the output parameter images. The specified path will be used as template to determine the format (via extension) and the name \"root\". For each parameter a suffix will be added to the name.",
89 "preview",
"p",
mitkCommandLineParser::Bool,
"Preview outputs",
"The application previews the outputs (filename, type) it would produce with the current settings.");
97 if (parsedArgs.size() == 0)
101 if (parsedArgs.count(
"verbose"))
106 if (parsedArgs.count(
"mask"))
112 if (parsedArgs.count(
"preview"))
140 mitk::PixelBasedDescriptionParameterImageGenerator::Pointer generator =
146 generator->SetFunctor(functor);
147 generator->SetDynamicImage(image);
148 generator->SetMask(mask);
150 ::itk::CStyleCommand::Pointer command = ::itk::CStyleCommand::New();
153 std::cout <<
"Started curve descriptor computation process..." << std::endl;
154 generator->AddObserver(::itk::AnyEvent(), command);
155 generator->Generate();
156 std::cout << std::endl <<
"Finished computation process" << std::endl;
158 for (
auto imageIterator : generator->GetParameterImages())
169 auto pNames = functor->GetDescriptionParameterNames();
171 for (
auto aName : pNames)
174 std::cout <<
"Store result parameter: " << aName <<
" -> " << fullPath << std::endl;
178 int main(
int argc,
char* argv[])
185 const std::map<std::string, us::Any>& parsedArgs = parser.
parseArguments(argc, argv);
192 if (parsedArgs.count(
"help") || parsedArgs.count(
"h"))
207 image = mitk::IOUtil::Load<mitk::Image>(
inFilename, &readerFilterFunctor);
208 std::cout <<
"Input: " << inFilename << std::endl;
212 mask = mitk::IOUtil::Load<mitk::Image>(
maskFileName, &readerFilterFunctor);
213 std::cout <<
"Mask: " << maskFileName << std::endl;
217 std::cout <<
"Mask: none" << std::endl;
223 std::cout <<
"Processing finished." << std::endl;
227 catch (
const itk::ExceptionObject& e)
232 catch (
const std::exception& e)
239 MITK_ERROR <<
"Unexpected error encountered.";
Option callback functor with a preference list/ black list option selection strategy.
void setupParser(mitkCommandLineParser &parser)
MITKMODELFIT_EXPORT std::string generateModelFitResultImagePath(const std::string &outputPathTemplate, const std::string ¶meterName)
void RegisterDescriptionParameter(const ParameterNameType ¶meterName, CurveDescriptionParameterBase *parameterFunction)
bool configureApplicationSettings(std::map< std::string, us::Any > parsedArgs)
void setContributor(std::string contributor)
ValueType * any_cast(Any *operand)
void addArgument(const std::string &longarg, const std::string &shortarg, Type type, const std::string &argLabel, const std::string &argHelp=std::string(), const us::Any &defaultValue=us::Any(), bool optional=true, bool ignoreRest=false, bool deprecated=false, mitkCommandLineParser::Channel channel=mitkCommandLineParser::Channel::None)
std::map< std::string, us::Any > parseArguments(const StringContainerType &arguments, bool *ok=nullptr)
int main(int argc, char *argv[])
MITKMODELFIT_EXPORT ModelBase::TimeGridType ExtractTimeGrid(const Image *image)
mitk::Image::Pointer mask
std::string helpText() const
void setCategory(std::string category)
void setArgumentPrefix(const std::string &longPrefix, const std::string &shortPrefix)
mitk::Image::Pointer image
MITKMODELFIT_EXPORT void storeParameterResultImage(const std::string &outputPathTemplate, const std::string ¶meterName, mitk::Image *image, mitk::modelFit::Parameter::Type parameterType=mitk::modelFit::Parameter::ParameterType)
void ConfigureFunctor(mitk::CurveParameterFunctor *functor)
void onFitEvent(::itk::Object *caller, const itk::EventObject &event, void *)
void setTitle(std::string title)
double GetProgress() const override
void setDescription(std::string description)
void beginGroup(const std::string &description)