diff --git a/Modules/DiffusionCmdApps/FiberProcessing/PrintFiberStatistics.cpp b/Modules/DiffusionCmdApps/FiberProcessing/PrintFiberStatistics.cpp index eb8c4bc..a166121 100644 --- a/Modules/DiffusionCmdApps/FiberProcessing/PrintFiberStatistics.cpp +++ b/Modules/DiffusionCmdApps/FiberProcessing/PrintFiberStatistics.cpp @@ -1,101 +1,101 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include #include #include "mitkDiffusionCommandLineParser.h" #include #include #include #include #include #include #include #include #define _USE_MATH_DEFINES #include mitk::FiberBundle::Pointer LoadFib(std::string filename) { std::vector fibInfile = mitk::IOUtil::Load(filename); if( fibInfile.empty() ) std::cout << "File " << filename << " could not be read!"; mitk::BaseData::Pointer baseData = fibInfile.at(0); return dynamic_cast(baseData.GetPointer()); } /*! \brief Join multiple tractograms */ int main(int argc, char* argv[]) { mitkDiffusionCommandLineParser parser; - parser.setTitle("Fiber Join"); + parser.setTitle("Fiber Statistics"); parser.setCategory("Fiber Tracking and Processing Methods"); parser.setContributor("MIC"); - parser.setDescription("Join multiple tractograms"); + parser.setDescription("Output statistics about fiber lengths, weights, etc. to a file."); parser.setArgumentPrefix("--", "-"); parser.addArgument("", "i", mitkDiffusionCommandLineParser::StringList, "Input:", "input tractograms", us::Any(), false); parser.addArgument("", "o", mitkDiffusionCommandLineParser::String, "Output File:", "output file", us::Any(), false); std::map parsedArgs = parser.parseArguments(argc, argv); if (parsedArgs.size()==0) return EXIT_FAILURE; mitkDiffusionCommandLineParser::StringContainerType inFibs = us::any_cast(parsedArgs["i"]); std::string outfile = us::any_cast(parsedArgs["o"]); try { std::vector< std::string > fib_names; auto input_tracts = mitk::DiffusionDataIOHelper::load_fibs(inFibs, &fib_names); ofstream statistics_file; statistics_file.open (outfile); int c=0; for (auto tract : input_tracts) { MITK_INFO << "Writing statistics of bunlde " << fib_names.at(c); statistics_file << "File: " << fib_names.at(c) << std::endl; tract->PrintSelf(statistics_file, 2); statistics_file << "-------------------------------------------------------------------------\n\n" << std::endl; ++c; } statistics_file.close(); } catch (const itk::ExceptionObject& e) { std::cout << e.what(); return EXIT_FAILURE; } catch (std::exception& e) { std::cout << e.what(); return EXIT_FAILURE; } catch (...) { std::cout << "ERROR!?!"; return EXIT_FAILURE; } return EXIT_SUCCESS; }