Program: bbtk
Module: $RCSfile: bbitkImageSeriesReader.cxx,v $
Language: C++
- Date: $Date: 2008/11/26 10:13:32 $
- Version: $Revision: 1.7 $
+ Date: $Date: 2008/11/27 14:55:54 $
+ Version: $Revision: 1.8 $
=========================================================================*/
/* ---------------------------------------------------------------------
BBTK_ADD_BLACK_BOX_TO_PACKAGE(itk,ImageSeriesReader);
+ void ImageSeriesReader::bbUserConstructor()
+ {
+ bbSetInputXSpacing(-1.);
+ bbSetInputYSpacing(-1.);
+ bbSetInputZSpacing(-1.);
+ }
+
+ void ImageSeriesReader::bbUserCopyConstructor(bbtk::BlackBox::Pointer)
+ {
+ }
+
+ void ImageSeriesReader::bbUserDestructor()
+ {
+ }
+
void ImageSeriesReader::Read()
{
const std::vector<std::string>& filenames = bbGetInputFileNames();
genericReader->SetFileName(filename.c_str());
genericReader->ReadImageInformation();
+ // a stack of 2D images will result as a 3D image // JPRx
int plusUn;
if (filenames.size()>1)
plusUn = 1;
plusUn = 0;
bbtk::TypeInfo typ = GetITKImagePtrTypeInfoFromPixelTypeInfoAndDimension(genericReader->GetComponentTypeInfo(), genericReader->GetNumberOfDimensions() + plusUn);
+
BBTK_TEMPLATE_ITK_IMAGE_SWITCH(typ,Read);
bbtkError("could not read image series : "<<e.what());
}
+ // JPRx
+ typename itkImageType::SpacingType spacingJPRx;
+
+ bool spacingToBeSet = false;
+ if (bbGetInputXSpacing() > 0.)
+ {
+ spacingToBeSet = true;
+ spacingJPRx[0]= bbGetInputXSpacing();
+ }
+ if (bbGetInputYSpacing() > 0.)
+ {
+ spacingToBeSet = true;
+ spacingJPRx[1]= bbGetInputYSpacing();
+ }
+ if (bbGetInputZSpacing() > 0.)
+ {
+ spacingToBeSet = true;
+ spacingJPRx[2]= bbGetInputZSpacing();
+ }
+ if (spacingToBeSet)
+ reader->GetOutput()->SetSpacing(spacingJPRx);
+ // JPRx
+
reader->GetOutput()->Register();
// if (bbGetOutputOut())
bbSetOutputOut ( reader->GetOutput() );
Program: bbtk
Module: $RCSfile: bbitkImageSeriesReader.h,v $
Language: C++
- Date: $Date: 2008/11/26 10:13:32 $
- Version: $Revision: 1.9 $
+ Date: $Date: 2008/11/27 14:55:54 $
+ Version: $Revision: 1.10 $
=========================================================================*/
/* ---------------------------------------------------------------------
BBTK_BLACK_BOX_INTERFACE(ImageSeriesReader,
bbtk::AtomicBlackBox);
-
+ //==================================================================
+ /// User callback called in the box contructor
+ virtual void bbUserConstructor();
+ /// User callback called in the box copy constructor
+ virtual void bbUserCopyConstructor(bbtk::BlackBox::Pointer);
+ /// User callback called in the box destructor
+ virtual void bbUserDestructor();
+ //==================================================================
BBTK_DECLARE_INPUT(FileNames,std::vector<std::string>);
+ BBTK_DECLARE_INPUT(XSpacing,float);
+ BBTK_DECLARE_INPUT(YSpacing,float);
+ BBTK_DECLARE_INPUT(ZSpacing,float);
BBTK_DECLARE_OUTPUT(Out,anyImagePointer);
BBTK_PROCESS(Read);
void Read();
typedef std::vector<std::string> vectorofstring;
BBTK_INPUT(ImageSeriesReader,FileNames,
"vector of file names with complete paths",vectorofstring,"file names list");
+ BBTK_INPUT(ImageSeriesReader,XSpacing, "if images don't contain information",float,"");
+ BBTK_INPUT(ImageSeriesReader,YSpacing, "if images don't contain information",float,"" );
+ BBTK_INPUT(ImageSeriesReader,ZSpacing, "if images don't contain information",float,"");
+
BBTK_OUTPUT(ImageSeriesReader,Out,"Output itk::image<T,D> with type T and dimension D determined by the content of the files + vector size",anyImagePointer,"");
BBTK_END_DESCRIBE_BLACK_BOX(ImageSeriesReader);