12 #ifndef mitkCLPolyToNrrd_cpp 13 #define mitkCLPolyToNrrd_cpp 24 #include <itkImageRegionIteratorWithIndex.h> 38 template <
typename TPixel,
unsigned int VImageDimension >
42 transform[0][0] = 1; transform[0][1] = 2;
43 transform[1][0] = 0; transform[1][1] = 2;
44 transform[2][0] = 0; transform[2][1] = 1;
46 typedef itk::Image<unsigned short, VImageDimension> MaskType;
47 typedef itk::Image<unsigned short, 2> Mask2DType;
48 typename Mask2DType::Pointer
mask = Mask2DType::New();
52 typename MaskType::Pointer mask3D = MaskType::New();
53 mask3D->SetRegions(image->GetLargestPossibleRegion());
54 mask3D->SetSpacing(image->GetSpacing());
55 mask3D->SetOrigin(image->GetOrigin());
58 itk::ImageRegionIteratorWithIndex<MaskType> iter(mask3D, mask3D->GetLargestPossibleRegion());
59 while (!iter.IsAtEnd())
61 auto index = iter.GetIndex();
63 if (index[param.axis] == param.slice)
65 Mask2DType::IndexType index2D;
66 index2D[0] = index[transform[param.axis][0]];
67 index2D[1] = index[transform[param.axis][1]];
68 auto pixel = mask->GetPixel(index2D);
78 int main(
int argc,
char* argv[])
88 parser.
setTitle(
"Planar Data to Nrrd Segmentation");
89 parser.
setDescription(
"Creates a Nrrd segmentation based on a 2d-vtk polydata.");
92 std::map<std::string, us::Any> parsedArgs = parser.
parseArguments(argc, argv);
94 if (parsedArgs.size()==0)
98 if ( parsedArgs.count(
"help") || parsedArgs.count(
"h"))
111 pfMaskGen->SetPlanarFigure(planar);
112 pfMaskGen->SetTimeStep(0);
113 pfMaskGen->SetInputImage(image.GetPointer());
116 unsigned int axis = pfMaskGen->GetPlanarFigureAxis();
117 unsigned int slice = pfMaskGen->GetPlanarFigureSlice();
127 std::string saveAs = parsedArgs[
"output"].ToString();
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)
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.
mitk::Image::Pointer mask
#define AccessByItk_2(mitkImage, itkImageTypeFunction, arg1, arg2)
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.