Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
itkDiffusionTensor3DRead.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Diffusion Applications
4 Module: $HeadURL$
5 Language: C++
6 Date: $Date$
7 Version: $Revision$
8
9 Copyright (c) Brigham and Women's Hospital (BWH) All Rights Reserved.
10
11 See License.txt or http://www.slicer.org/copyright/copyright.txt for details.
12
13==========================================================================*/
14#ifndef itkDiffusionTensor3DRead_h
15#define itkDiffusionTensor3DRead_h
16
17#include <itkObject.h>
18#include <itkMetaDataObject.h>
19#include <itkImage.h>
20#include <itkMatrix.h>
21#include <itkImageFileReader.h>
22#include <itkNrrdImageIO.h>
23#include <itkImageIOBase.h>
24#include <itkDiffusionTensor3D.h>
25
26namespace itk
27{
28
33
34template <class TData>
35class ITK_ABI_EXPORT DiffusionTensor3DRead : public Object
36{
37public:
38 typedef TData DataType;
39 typedef DiffusionTensor3DRead Self;
40 typedef Matrix<double, 3, 3> MatrixType;
41 typedef DiffusionTensor3D<DataType> TensorDataType;
42 typedef Image<TensorDataType, 3> DiffusionImageType;
43 typedef typename DiffusionImageType::Pointer DiffusionImagePointer;
44 typedef ImageFileReader<DiffusionImageType> FileReaderType;
45 typedef MetaDataDictionary DictionaryType;
46 typedef MetaDataObject<std::string> MetaDataStringType;
47 typedef std::vector<std::vector<double>> DoubleVectorType;
48 typedef MetaDataObject<DoubleVectorType> MetaDataDoubleVectorType;
49 typedef SmartPointer<Self> Pointer;
50 typedef SmartPointer<const Self> ConstPointer;
51
53 itkTypeMacro(DiffusionTensor3DRead, Object);
54
56 int Update(const char* input);
57
58 // /Get the measurement frame of the image
59 itkGetMacro(MeasurementFrame, MatrixType);
60 // /Get the MetaDataDictionary of the image
62
63 // /Get the output of the reader, the pixels of the image being of the DiffusionTensor3D type
65
66 // /Set Number Of Threads
67 itkSetMacro(NumberOfThreads, unsigned int);
68 itkGetMacro(HasMeasurementFrame, bool);
69
70private:
71 DiffusionTensor3DRead();
72
73 typename FileReaderType::Pointer m_Reader;
74
75 MatrixType m_MeasurementFrame;
76 unsigned int m_NumberOfThreads;
77 bool m_HasMeasurementFrame;
78};
79
80} // end namespace itk
81
82#ifndef ITK_MANUAL_INSTANTIATION
83# include "itkDiffusionTensor3DRead.txx"
84#endif
85
86#endif
int Update(const char *input)
DiffusionImagePointer GetOutput() const
std::vector< std::vector< double > > DoubleVectorType
ImageFileReader< DiffusionImageType > FileReaderType
itkGetMacro(HasMeasurementFrame, bool)
SmartPointer< const Self > ConstPointer
DictionaryType GetMetaDataDictionary() const
itkTypeMacro(DiffusionTensor3DRead, Object)
itkGetMacro(MeasurementFrame, MatrixType)
MetaDataObject< std::string > MetaDataStringType
MetaDataObject< DoubleVectorType > MetaDataDoubleVectorType
DiffusionImageType::Pointer DiffusionImagePointer
Image< TensorDataType, 3 > DiffusionImageType
DiffusionTensor3D< DataType > TensorDataType
itkSetMacro(NumberOfThreads, unsigned int)
Simplified inverse ITK transforms.