Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

mitk::NrrdQBallImageWriter Class Reference
[Process Classes]

#include <mitkNrrdQBallImageWriter.h>

Inheritance diagram for mitk::NrrdQBallImageWriter:
Inheritance graph
[legend]
Collaboration diagram for mitk::NrrdQBallImageWriter:
Collaboration graph
[legend]

List of all members.

Public Types

typedef NrrdQBallImageWriter Self
typedef
mitk::FileWriterWithInformation 
Superclass
typedef itk::SmartPointer< SelfPointer
typedef itk::SmartPointer
< const Self
ConstPointer
typedef mitk::QBallImage InputType

Public Member Functions

virtual const char * GetClassName () const
virtual void Write ()
virtual void Update ()
virtual void SetFileName (const char *_arg)
virtual const char * GetFileName () const
virtual void SetFilePrefix (const char *_arg)
virtual const char * GetFilePrefix () const
virtual void SetFilePattern (const char *_arg)
virtual const char * GetFilePattern () const
void SetInput (InputType *input)
InputTypeGetInput ()
virtual bool GetSuccess ()
virtual std::vector< std::string > GetPossibleFileExtensions ()
virtual const char * GetDefaultFilename ()
virtual const char * GetFileDialogPattern ()
virtual const char * GetDefaultExtension ()
virtual bool CanWriteDataType (BaseData::Pointer data)
virtual void DoWrite (BaseData::Pointer data)

Static Public Member Functions

static Pointer New ()

Protected Member Functions

 NrrdQBallImageWriter ()
virtual ~NrrdQBallImageWriter ()
virtual void GenerateData ()

Protected Attributes

std::string m_FileName
std::string m_FilePrefix
std::string m_FilePattern
bool m_Success

Detailed Description

Writes diffusion volumes to a file

Definition at line 33 of file mitkNrrdQBallImageWriter.h.


Member Typedef Documentation

typedef itk::SmartPointer<const Self> mitk::NrrdQBallImageWriter::ConstPointer

Reimplemented from mitk::FileWriterWithInformation.

Definition at line 37 of file mitkNrrdQBallImageWriter.h.

Definition at line 41 of file mitkNrrdQBallImageWriter.h.

typedef itk::SmartPointer<Self> mitk::NrrdQBallImageWriter::Pointer

Reimplemented from mitk::FileWriterWithInformation.

Definition at line 37 of file mitkNrrdQBallImageWriter.h.

Reimplemented from mitk::FileWriterWithInformation.

Definition at line 37 of file mitkNrrdQBallImageWriter.h.

Reimplemented from mitk::FileWriterWithInformation.

Definition at line 37 of file mitkNrrdQBallImageWriter.h.


Constructor & Destructor Documentation

mitk::NrrdQBallImageWriter::NrrdQBallImageWriter (  ) [protected]

Definition at line 26 of file mitkNrrdQBallImageWriter.cpp.

    : m_FileName(""), m_FilePrefix(""), m_FilePattern(""), m_Success(false)
{
    this->SetNumberOfRequiredInputs( 1 );
}
mitk::NrrdQBallImageWriter::~NrrdQBallImageWriter (  ) [protected, virtual]

Definition at line 33 of file mitkNrrdQBallImageWriter.cpp.

{}

Member Function Documentation

virtual bool mitk::NrrdQBallImageWriter::CanWriteDataType ( BaseData::Pointer  data ) [inline, virtual]

Implements mitk::FileWriterWithInformation.

Definition at line 101 of file mitkNrrdQBallImageWriter.h.

Referenced by DoWrite().

{ return (dynamic_cast<mitk::QBallImage*>(data.GetPointer()) != NULL); };  
virtual void mitk::NrrdQBallImageWriter::DoWrite ( BaseData::Pointer  data ) [inline, virtual]

Implements mitk::FileWriterWithInformation.

Definition at line 102 of file mitkNrrdQBallImageWriter.h.

References CanWriteDataType(), SetInput(), and Update().

                                               { 
      if (CanWriteDataType(data)) {
        this->SetInput(dynamic_cast<mitk::QBallImage*>(data.GetPointer())); 
        this->Update(); 
      }
    };
void mitk::NrrdQBallImageWriter::GenerateData (  ) [protected, virtual]

Definition at line 37 of file mitkNrrdQBallImageWriter.cpp.

References mitk::CastToItkImage(), and QBALL_ODFSIZE.

{
    m_Success = false;
    InputType* input = this->GetInput();
    if (input == NULL)
    {
        itkWarningMacro(<<"Sorry, input to NrrdQBallImageWriter is NULL!");    
        return;
    }
    if ( m_FileName == "" )
    {
        itkWarningMacro( << "Sorry, filename has not been set!" );
        return ;
    }
    
    itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New();
    io->SetFileType( itk::ImageIOBase::Binary );

    typedef itk::VectorImage<float, 3> VecImgType;

    typedef itk::Image<itk::Vector<float,QBALL_ODFSIZE>,3> ImageType;
    typedef itk::ImageFileWriter<VecImgType> WriterType;
    WriterType::Pointer nrrdWriter = WriterType::New();
    
    ImageType::Pointer outimage = ImageType::New();
    CastToItkImage(input, outimage);

    VecImgType::Pointer vecImg = VecImgType::New();
    vecImg->SetSpacing( outimage->GetSpacing() );   // Set the image spacing
    vecImg->SetOrigin( outimage->GetOrigin() );     // Set the image origin
    vecImg->SetDirection( outimage->GetDirection() );  // Set the image direction
    vecImg->SetLargestPossibleRegion( outimage->GetLargestPossibleRegion());
    vecImg->SetBufferedRegion( outimage->GetLargestPossibleRegion() );
    vecImg->SetVectorLength(QBALL_ODFSIZE);
    vecImg->Allocate();

    itk::ImageRegionIterator<VecImgType> ot (vecImg, vecImg->GetLargestPossibleRegion() );
    ot = ot.Begin();

    itk::ImageRegionIterator<ImageType> it (outimage, outimage->GetLargestPossibleRegion() );

    typedef ImageType::PixelType VecPixType;
    typedef VecImgType::PixelType VarVecType;

    for (it = it.Begin(); !it.IsAtEnd(); ++it)
    {
      VecPixType vec = it.Get();
      VarVecType varVec(vec.GetVnlVector().data_block(), QBALL_ODFSIZE);
      ot.Set(varVec);
      ++ot;
    }

    nrrdWriter->SetInput( vecImg );
    nrrdWriter->SetImageIO(io);
    nrrdWriter->SetFileName(m_FileName);

    try
    {
      nrrdWriter->Update();
    }
    catch (itk::ExceptionObject e)
    {
      std::cout << e << std::endl;
    }

    m_Success = true;
}
virtual const char* mitk::NrrdQBallImageWriter::GetClassName (  ) const [virtual]

Reimplemented from mitk::FileWriterWithInformation.

virtual const char* mitk::NrrdQBallImageWriter::GetDefaultExtension (  ) [inline, virtual]

Implements mitk::FileWriterWithInformation.

Definition at line 100 of file mitkNrrdQBallImageWriter.h.

{ return ".qbi"; }
virtual const char* mitk::NrrdQBallImageWriter::GetDefaultFilename (  ) [inline, virtual]

Implements mitk::FileWriterWithInformation.

Definition at line 98 of file mitkNrrdQBallImageWriter.h.

{ return "QBalls.qbi"; }
virtual const char* mitk::NrrdQBallImageWriter::GetFileDialogPattern (  ) [inline, virtual]

Implements mitk::FileWriterWithInformation.

Definition at line 99 of file mitkNrrdQBallImageWriter.h.

{ return "Q-Ball Images (*.qbi *.hqbi"; }
virtual const char* mitk::NrrdQBallImageWriter::GetFileName (  ) const [virtual]
Returns:
the name of the file to be written to disk.

Implements mitk::FileWriter.

virtual const char* mitk::NrrdQBallImageWriter::GetFilePattern (  ) const [virtual]
Warning:
multiple write not (yet) supported

Implements mitk::FileWriter.

virtual const char* mitk::NrrdQBallImageWriter::GetFilePrefix (  ) const [virtual]
Warning:
multiple write not (yet) supported

Implements mitk::FileWriter.

mitk::QBallImage * mitk::NrrdQBallImageWriter::GetInput ( void   )
Returns:
the 0'th input object of the filter.

Definition at line 112 of file mitkNrrdQBallImageWriter.cpp.

{
    if ( this->GetNumberOfInputs() < 1 )
    {
        return NULL;
    }
    else
    {
        return dynamic_cast<InputType*> ( this->ProcessObject::GetInput( 0 ) );
    }
}
std::vector< std::string > mitk::NrrdQBallImageWriter::GetPossibleFileExtensions (  ) [virtual]
Returns:
possible file extensions for the data type associated with the writer

Implements mitk::FileWriter.

Definition at line 125 of file mitkNrrdQBallImageWriter.cpp.

{
  std::vector<std::string> possibleFileExtensions;
  possibleFileExtensions.push_back(".qbi");
  possibleFileExtensions.push_back(".hqbi");
  return possibleFileExtensions;
}
virtual bool mitk::NrrdQBallImageWriter::GetSuccess (  ) [virtual]

Returns false if an error happened during writing

static Pointer mitk::NrrdQBallImageWriter::New (  ) [static]
virtual void mitk::NrrdQBallImageWriter::SetFileName ( const char *  _arg ) [virtual]

Sets the filename of the file to write.

Parameters:
FileNamethe name of the file to write.

Implements mitk::FileWriter.

virtual void mitk::NrrdQBallImageWriter::SetFilePattern ( const char *  _arg ) [virtual]
Warning:
multiple write not (yet) supported

Implements mitk::FileWriter.

virtual void mitk::NrrdQBallImageWriter::SetFilePrefix ( const char *  _arg ) [virtual]
Warning:
multiple write not (yet) supported

Implements mitk::FileWriter.

void mitk::NrrdQBallImageWriter::SetInput ( InputType input )

Sets the input object for the filter.

Parameters:
inputthe diffusion volumes to write to file.

Definition at line 106 of file mitkNrrdQBallImageWriter.cpp.

Referenced by DoWrite().

{
    this->ProcessObject::SetNthInput( 0, diffVolumes );
}
virtual void mitk::NrrdQBallImageWriter::Update (  ) [inline, virtual]

Definition at line 39 of file mitkNrrdQBallImageWriter.h.

Referenced by DoWrite().

virtual void mitk::NrrdQBallImageWriter::Write (  ) [inline, virtual]

Implements mitk::FileWriter.

Definition at line 39 of file mitkNrrdQBallImageWriter.h.


Member Data Documentation

std::string mitk::NrrdQBallImageWriter::m_FileName [protected]

Definition at line 117 of file mitkNrrdQBallImageWriter.h.

Definition at line 121 of file mitkNrrdQBallImageWriter.h.

Definition at line 119 of file mitkNrrdQBallImageWriter.h.

Definition at line 123 of file mitkNrrdQBallImageWriter.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines