From: Simon Rit Date: Wed, 8 Oct 2014 11:54:24 +0000 (+0200) Subject: Added more options to clitkImageUncertainty, default should be identical X-Git-Tag: v1.4.0~109 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=ba29b18c22c6d93ae856924478a4555d21edb861;p=clitk.git Added more options to clitkImageUncertainty, default should be identical --- diff --git a/tools/clitkImageUncertainty.cxx b/tools/clitkImageUncertainty.cxx index 63b1f12..a8e76de 100644 --- a/tools/clitkImageUncertainty.cxx +++ b/tools/clitkImageUncertainty.cxx @@ -53,9 +53,9 @@ int main(int argc, char * argv[]) { // Read images ImageType::Pointer input = - clitk::readImage(args_info.input_arg, args_info.verbose_flag); + clitk::readImage(args_info.input_arg, args_info.verbose_flag); ImageType::Pointer inputSquared = - clitk::readImage(args_info.inputSquared_arg, args_info.verbose_flag); + clitk::readImage(args_info.inputSquared_arg, args_info.verbose_flag); // Create Output ImageType::Pointer output = ImageType::New(); @@ -75,39 +75,36 @@ int main(int argc, char * argv[]) { int NumberOfEvents = args_info.NumberOfEvents_arg; while ( !pi.IsAtEnd() ) { - double squared = pii.Get(); - double mean = pi.Get(); - double uncert = sqrt((NumberOfEvents*squared - mean*mean) / ((NumberOfEvents-1)*(mean*mean))); - if (!IsNormal(uncert)) uncert = 1.; - po.Set(uncert); - ++pi; - ++pii; - ++po; + double squared = pii.Get(); + double mean = pi.Get(); + double uncert = sqrt((NumberOfEvents*squared - mean*mean) / (NumberOfEvents-1)); + if(!args_info.absolute_flag) + uncert /= std::abs(mean); + if (!IsNormal(uncert)) uncert = args_info.default_arg; + po.Set(uncert); + ++pi; + ++pii; + ++po; } -// *po = sqrt( (NumberOfEvents*squared - mean*mean) / -// ((NumberOfEvents-1)*(mean*mean)) ); -// ++po; - - // Write output image // DD(clitk::GetExtension(args_info.output_arg)); if (clitk::GetExtension(args_info.output_arg) != "txt") { - clitk::writeImage(output, args_info.output_arg, args_info.verbose_flag); + clitk::writeImage(output, args_info.output_arg, args_info.verbose_flag); } else { - std::ofstream os; - clitk::openFileForWriting(os, args_info.output_arg); - typedef itk::ImageRegionConstIterator IteratorType; - IteratorType pi(output, output->GetLargestPossibleRegion()); - pi.GoToBegin(); - os << "# Image size = " << output->GetLargestPossibleRegion().GetSize() << std::endl; - os << "# Image spacing = " << output->GetSpacing() << std::endl; - os << "# Number of events = " << NumberOfEvents << std::endl; - while (!pi.IsAtEnd()) { - os << pi.Get() << std::endl; - ++pi; - } + std::ofstream os; + clitk::openFileForWriting(os, args_info.output_arg); + typedef itk::ImageRegionConstIterator IteratorType; + IteratorType pi(output, output->GetLargestPossibleRegion()); + pi.GoToBegin(); + os << "# Image size = " << output->GetLargestPossibleRegion().GetSize() << std::endl; + os << "# Image spacing = " << output->GetSpacing() << std::endl; + os << "# Number of events = " << NumberOfEvents << std::endl; + while (!pi.IsAtEnd()) { + os << pi.Get() << std::endl; + ++pi; + } } } diff --git a/tools/clitkImageUncertainty.ggo b/tools/clitkImageUncertainty.ggo index af5dfad..00b105a 100644 --- a/tools/clitkImageUncertainty.ggo +++ b/tools/clitkImageUncertainty.ggo @@ -1,10 +1,12 @@ # file clitkImageRescaleIntensity.ggo package "clitk" -version "Rescale intensity in the image" +version "Compute the uncertainty of simulation outputs using Chetty's history-by-history's method" -option "config" - "Config file" string no -option "input" i "Input image filename" string yes -option "inputSquared" s "Input squared image filename" string yes -option "output" o "Output image filename" string yes -option "NumberOfEvents" n "Number of events" int yes -option "verbose" v "Verbose" flag off +option "config" - "Config file" string no +option "input" i "Input image filename" string yes +option "inputSquared" s "Input squared image filename" string yes +option "output" o "Output image filename" string yes +option "NumberOfEvents" n "Number of events" int yes +option "verbose" v "Verbose" flag off +option "absolute" a "Absolute instead of the relative" flag off +option "default" d "Default when input is 0." double no default="1."