#include <mitkNrrdTensorImageReader.h>
Public Types | |
typedef mitk::TensorImage | OutputType |
typedef mitk::TensorImageSource | DTImgSourceType |
typedef NrrdTensorImageReader | Self |
typedef DTImgSourceType | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
const char * | GetFileName () const |
Get the specified the file to load. | |
void | SetFileName (const char *aFileName) |
Specify the file to load. | |
const char * | GetFilePrefix () const |
Get the specified file prefix for the file(s) to load. | |
void | SetFilePrefix (const char *aFilePrefix) |
Specify file prefix for the file(s) to load. | |
const char * | GetFilePattern () const |
Get the specified file pattern for the file(s) to load. The sprintf format used to build filename from FilePrefix and number. | |
void | SetFilePattern (const char *aFilePattern) |
Specified file pattern for the file(s) to load. The sprintf format used to build filename from FilePrefix and number. | |
Static Public Member Functions | |
static Pointer | New () |
Method for creation through the object factory. | |
static bool | CanReadFile (const std::string filename, const std::string filePrefix, const std::string filePattern) |
Protected Member Functions | |
virtual void | GenerateData () |
virtual void | GenerateOutputInformation () |
Protected Attributes | |
std::string | m_FileName |
std::string | m_FilePrefix |
std::string | m_FilePattern |
Definition at line 35 of file mitkNrrdTensorImageReader.h.
typedef itk::SmartPointer<const Self> mitk::NrrdTensorImageReader::ConstPointer |
Reimplemented from mitk::TensorImageSource.
Definition at line 42 of file mitkNrrdTensorImageReader.h.
Definition at line 40 of file mitkNrrdTensorImageReader.h.
Definition at line 39 of file mitkNrrdTensorImageReader.h.
typedef itk::SmartPointer<Self> mitk::NrrdTensorImageReader::Pointer |
Reimplemented from mitk::TensorImageSource.
Definition at line 42 of file mitkNrrdTensorImageReader.h.
Reimplemented from mitk::TensorImageSource.
Definition at line 42 of file mitkNrrdTensorImageReader.h.
Reimplemented from mitk::TensorImageSource.
Definition at line 42 of file mitkNrrdTensorImageReader.h.
bool mitk::NrrdTensorImageReader::CanReadFile | ( | const std::string | filename, |
const std::string | filePrefix, | ||
const std::string | filePattern | ||
) | [static] |
Definition at line 143 of file mitkNrrdTensorImageReader.cpp.
{ // First check the extension if( filename == "" ) { return false; } std::string ext = itksys::SystemTools::GetFilenameLastExtension(filename); ext = itksys::SystemTools::LowerCase(ext); if (ext == ".hdti" || ext == ".dti") { return true; } return false; }
void mitk::NrrdTensorImageReader::GenerateData | ( | ) | [protected, virtual] |
Does the real work.
Reimplemented from mitk::ImageSource.
Definition at line 33 of file mitkNrrdTensorImageReader.cpp.
{ if ( m_FileName == "") { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, the filename is empty!"); } else { try { typedef itk::VectorImage<float,3> ImageType; itk::NrrdImageIO::Pointer io = itk::NrrdImageIO::New(); typedef itk::ImageFileReader<ImageType> FileReaderType; FileReaderType::Pointer reader = FileReaderType::New(); reader->SetImageIO(io); reader->SetFileName(this->m_FileName); reader->Update(); ImageType::Pointer img = reader->GetOutput(); typedef itk::Image<itk::DiffusionTensor3D<float>,3> VecImgType; VecImgType::Pointer vecImg = VecImgType::New(); vecImg->SetSpacing( img->GetSpacing() ); // Set the image spacing vecImg->SetOrigin( img->GetOrigin() ); // Set the image origin vecImg->SetDirection( img->GetDirection() ); // Set the image direction vecImg->SetRegions( img->GetLargestPossibleRegion()); vecImg->Allocate(); itk::ImageRegionIterator<VecImgType> ot (vecImg, vecImg->GetLargestPossibleRegion() ); ot = ot.Begin(); itk::ImageRegionIterator<ImageType> it (img, img->GetLargestPossibleRegion() ); it = it.Begin(); typedef ImageType::PixelType VarPixType; typedef VecImgType::PixelType FixPixType; while (!it.IsAtEnd()) { VarPixType vec = it.Get(); FixPixType fixVec(vec.GetDataPointer()); ot.Set(fixVec); ++ot; ++it; } this->GetOutput()->InitializeByItk(vecImg.GetPointer()); this->GetOutput()->SetVolume(vecImg->GetBufferPointer()); } catch(std::exception& e) { throw itk::ImageFileReaderException(__FILE__, __LINE__, e.what()); } catch(...) { throw itk::ImageFileReaderException(__FILE__, __LINE__, "Sorry, an error occurred while reading the requested DTI file!"); } } }
void mitk::NrrdTensorImageReader::GenerateOutputInformation | ( | void | ) | [protected, virtual] |
Definition at line 93 of file mitkNrrdTensorImageReader.cpp.
{ }
virtual const char* mitk::NrrdTensorImageReader::GetClassName | ( | ) | const [virtual] |
Reimplemented from mitk::TensorImageSource.
const char * mitk::NrrdTensorImageReader::GetFileName | ( | ) | const [virtual] |
Get the specified the file to load.
Either the FileName or FilePrefix plus FilePattern are used to read.
Implements mitk::FileReader.
Definition at line 101 of file mitkNrrdTensorImageReader.cpp.
{ return m_FileName.c_str(); }
const char * mitk::NrrdTensorImageReader::GetFilePattern | ( | ) | const [virtual] |
Get the specified file pattern for the file(s) to load. The sprintf format used to build filename from FilePrefix and number.
You should specify either a FileName or FilePrefix. Use FilePrefix if the data is stored in multiple files.
Implements mitk::FileReader.
Definition at line 129 of file mitkNrrdTensorImageReader.cpp.
{ return m_FilePattern.c_str(); }
const char * mitk::NrrdTensorImageReader::GetFilePrefix | ( | ) | const [virtual] |
Get the specified file prefix for the file(s) to load.
You should specify either a FileName or FilePrefix. Use FilePrefix if the data is stored in multiple files.
Implements mitk::FileReader.
Definition at line 115 of file mitkNrrdTensorImageReader.cpp.
{ return m_FilePrefix.c_str(); }
static Pointer mitk::NrrdTensorImageReader::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from mitk::TensorImageSource.
void mitk::NrrdTensorImageReader::SetFileName | ( | const char * | aFileName ) | [virtual] |
Specify the file to load.
Either the FileName or FilePrefix plus FilePattern are used to read.
Implements mitk::FileReader.
Definition at line 108 of file mitkNrrdTensorImageReader.cpp.
{ m_FileName = aFileName; }
void mitk::NrrdTensorImageReader::SetFilePattern | ( | const char * | aFilePattern ) | [virtual] |
Specified file pattern for the file(s) to load. The sprintf format used to build filename from FilePrefix and number.
You should specify either a FileName or FilePrefix. Use FilePrefix if the data is stored in multiple files.
Implements mitk::FileReader.
Definition at line 136 of file mitkNrrdTensorImageReader.cpp.
{ m_FilePattern = aFilePattern; }
void mitk::NrrdTensorImageReader::SetFilePrefix | ( | const char * | aFilePrefix ) | [virtual] |
Specify file prefix for the file(s) to load.
You should specify either a FileName or FilePrefix. Use FilePrefix if the data is stored in multiple files.
Implements mitk::FileReader.
Definition at line 122 of file mitkNrrdTensorImageReader.cpp.
{ m_FilePrefix = aFilePrefix; }
std::string mitk::NrrdTensorImageReader::m_FileName [protected] |
Definition at line 60 of file mitkNrrdTensorImageReader.h.
std::string mitk::NrrdTensorImageReader::m_FilePattern [protected] |
Definition at line 62 of file mitkNrrdTensorImageReader.h.
std::string mitk::NrrdTensorImageReader::m_FilePrefix [protected] |
Definition at line 61 of file mitkNrrdTensorImageReader.h.