17 #include <itkN4BiasFieldCorrectionImageFilter.h> 19 #include <itkSTAPLEImageFilter.h> 21 int main(
int argc,
char* argv[])
25 typedef itk::N4BiasFieldCorrectionImageFilter < ImageType, MaskImageType, ImageType > FilterType;
28 parser.
setTitle(
"N4 Bias Field Correction");
48 std::map<std::string, us::Any> parsedArgs = parser.
parseArguments(argc, argv);
51 if (parsedArgs.count(
"help") || parsedArgs.count(
"h"))
57 MaskImageType::Pointer itkMsk = MaskImageType::New();
61 ImageType::Pointer itkImage = ImageType::New();
65 FilterType::Pointer filter = FilterType::New();
66 filter->SetInput(itkImage);
67 filter->SetMaskImage(itkMsk);
71 if (parsedArgs.count(
"number-of-controllpoints") > 0)
73 int variable =
us::any_cast<
int>(parsedArgs[
"maximum-iterations"]);
74 MITK_INFO <<
"Number of controll points: " << variable;
75 filter->SetNumberOfControlPoints(variable);
77 if (parsedArgs.count(
"number-of-fitting-levels") > 0)
79 int variable =
us::any_cast<
int>(parsedArgs[
"number-of-fitting-levels"]);
80 MITK_INFO <<
"Number of fitting levels: " << variable;
81 filter->SetNumberOfFittingLevels(variable);
83 if (parsedArgs.count(
"number-of-histogram-bins") > 0)
85 int variable =
us::any_cast<
int>(parsedArgs[
"number-of-histogram-bins"]);
86 MITK_INFO <<
"Number of histogram bins: " << variable;
87 filter->SetNumberOfHistogramBins(variable);
89 if (parsedArgs.count(
"spline-order") > 0)
91 int variable =
us::any_cast<
int>(parsedArgs[
"spline-order"]);
93 filter->SetSplineOrder(variable);
95 if (parsedArgs.count(
"winer-filter-noise") > 0)
97 float variable =
us::any_cast<
float>(parsedArgs[
"winer-filter-noise"]);
98 MITK_INFO <<
"Number of histogram bins: " << variable;
99 filter->SetWienerFilterNoise(variable);
101 if (parsedArgs.count(
"number-of-maximum-iterations") > 0)
103 int variable =
us::any_cast<
int>(parsedArgs[
"number-of-maximum-iterations"]);
104 MITK_INFO <<
"Number of Maximum Iterations: " << variable;
105 auto list = filter->GetMaximumNumberOfIterations();
107 filter->SetMaximumNumberOfIterations(list);
111 auto out = filter->GetOutput();
itk::Image< unsigned char, 3 > ImageType
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)
itk::Image< unsigned char, 3 > MaskImageType
std::string helpText() const
void setCategory(std::string category)
void setArgumentPrefix(const std::string &longPrefix, const std::string &shortPrefix)
void CastToMitkImage(const itk::SmartPointer< ItkOutputImageType > &itkimage, itk::SmartPointer< mitk::Image > &mitkoutputimage)
Cast an itk::Image (with a specific type) to an mitk::Image.
void MITKCORE_EXPORT CastToItkImage(const mitk::Image *mitkImage, itk::SmartPointer< ItkOutputImageType > &itkOutputImage)
Cast an mitk::Image to an itk::Image with a specific type.
static void Save(const mitk::BaseData *data, const std::string &path, bool setPathProperty=false)
Save a mitk::BaseData instance.
int main(int argc, char *argv[])
void setTitle(std::string title)
void setDescription(std::string description)