12 #ifndef mitkCLPolyToNrrd_cpp 13 #define mitkCLPolyToNrrd_cpp 19 #include <vtkPolyData.h> 20 #include <vtkCellArray.h> 26 #include <vtkSmartPointer.h> 27 #include <vtkLinearExtrusionFilter.h> 36 int main(
int argc,
char* argv[])
43 parser.
addArgument(
"output",
"o",
mitkCommandLineParser::File,
"Output file",
"Output files. Two files are create, a .nrrd image and a 3d-vtk.",
us::Any(),
false,
false,
false,
mitkCommandLineParser::Input);
46 parser.
setTitle(
"2D-Polydata to Nrrd Segmentation");
47 parser.
setDescription(
"Creates a Nrrd segmentation based on a 2d-vtk polydata.");
50 std::map<std::string, us::Any> parsedArgs = parser.
parseArguments(argc, argv);
52 if (parsedArgs.size()==0)
56 if ( parsedArgs.count(
"help") || parsedArgs.count(
"h"))
68 vtkSmartPointer<vtkLinearExtrusionFilter> extruder =
69 vtkSmartPointer<vtkLinearExtrusionFilter>::New();
71 extruder->SetInputData(circle);
72 image->GetGeometry()->GetSpacing()[2];
73 extruder->SetScaleFactor(1.);
74 extruder->SetExtrusionTypeToNormalExtrusion();
75 extruder->SetVector(0, 0, image->GetGeometry()->GetSpacing()[2]);
77 surf->SetVtkPolyData(extruder->GetOutput());
80 surfaceToImageFilter->MakeOutputBinaryOn();
81 surfaceToImageFilter->SetInput(surf);
82 surfaceToImageFilter->SetImage(image);
83 surfaceToImageFilter->Update();
87 multiFilter->SetInput(resultImage);
88 multiFilter->Update();
89 resultImage = multiFilter->GetOutput();
91 std::string saveAs = parsedArgs[
"output"].ToString();
93 saveAs = saveAs +
".vtk";
96 saveAs = parsedArgs[
"output"].ToString();
98 saveAs = saveAs +
".nrrd";
Class for storing surfaces (vtkPolyData).
virtual vtkPolyData * GetVtkPolyData(unsigned int t=0) const
itk::Image< unsigned char, 3 > MaskImageType
void setContributor(std::string contributor)
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)
void setCategory(std::string category)
mitk::Image::Pointer image
void setArgumentPrefix(const std::string &longPrefix, const std::string &shortPrefix)
itk::Image< double, 3 > FloatImageType
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)
static DataStorage::SetOfObjects::Pointer Load(const std::string &path, DataStorage &storage, const ReaderOptionsFunctorBase *optionsCallback=nullptr)
Load a file into the given DataStorage.