12 #ifndef mitkCLPolyToNrrd_cpp 13 #define mitkCLPolyToNrrd_cpp 22 #include "itkImageRegionIterator.h" 31 #include <itkLabelStatisticsImageFilter.h> 32 #include <itkMinimumMaximumImageCalculator.h> 37 int main(
int argc,
char* argv[])
44 parser.
addArgument(
"mode",
"mode",
mitkCommandLineParser::Image,
"Normalisation mode",
"1,2,3: Single Area normalization to Mean, Median, Mode, 4,5,6: Mean, Median, Mode of two regions. ",
us::Any(),
false,
false,
false,
mitkCommandLineParser::Input);
55 parser.
setTitle(
"MR Normalization Tool");
56 parser.
setDescription(
"Normalizes a MR image. Sets the Median of the tissue covered by mask 0 to 0 and the median of the area covered by mask 1 to 1.");
59 std::map<std::string, us::Any> parsedArgs = parser.
parseArguments(argc, argv);
61 if (parsedArgs.size()==0)
65 if ( parsedArgs.count(
"help") || parsedArgs.count(
"h"))
70 bool ignore_outlier =
false;
71 if (parsedArgs.count(
"ignore-outlier"))
73 ignore_outlier =
us::any_cast<
bool>(parsedArgs[
"ignore-outlier"]);
77 int mode =std::stoi(us::any_cast<std::string>(parsedArgs[
"mode"]));
78 MITK_INFO <<
"Mode: " << mode;
80 MITK_INFO <<
"Read images";
84 if (parsedArgs.count(
"float"))
87 ImageType::Pointer img = ImageType::New();
95 mask1 = mitk::IOUtil::Load<mitk::Image>(parsedArgs[
"mask1"].ToString());
101 oneRegion->SetInput(image);
102 oneRegion->SetMask(mask0);
103 oneRegion->SetIgnoreOutlier(ignore_outlier);
104 twoRegion->SetInput(image);
105 twoRegion->SetMask1(mask0);
106 twoRegion->SetMask2(mask1);
108 if (parsedArgs.count(
"value"))
110 double target =
us::any_cast<
float>(parsedArgs[
"value"]);
111 oneRegion->SetTargetValue(target);
113 if (parsedArgs.count(
"width"))
115 double width =
us::any_cast<
float>(parsedArgs[
"width"]);
116 oneRegion->SetTargetValue(width);
124 output=oneRegion->GetOutput();
129 output=oneRegion->GetOutput();
134 output=oneRegion->GetOutput();
140 output=twoRegion->GetOutput();
146 output=twoRegion->GetOutput();
152 output=twoRegion->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
itk::Image< double, 3 > FloatImageType
void setCategory(std::string category)
mitk::Image::Pointer image
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.
void setTitle(std::string title)
void setDescription(std::string description)
int main(int argc, char *argv[])