#include <mitkTeemDiffusionTensor3DReconstructionImageFilter.h>

Definition at line 39 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::SmartPointer<const Self> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::ConstPointer |
Definition at line 58 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::VectorImage< DiffusionPixelType, 3 > mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::DiffusionImageType |
Definition at line 55 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef DiffusionImagePixelType mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::DiffusionPixelType |
Definition at line 54 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Image<TensorType,3 > mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::ItkTensorImageType |
Definition at line 49 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Image<ItkTensorVectorType,3> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::ItkTensorVectorImageType |
Definition at line 52 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Vector<TensorPixelType,6> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::ItkTensorVectorType |
Definition at line 51 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::SmartPointer<Self> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::Pointer |
Definition at line 58 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef TeemDiffusionTensor3DReconstructionImageFilter mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::Self |
Definition at line 58 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Object mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::Superclass |
Definition at line 58 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef TTensorPixelType mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::TensorPixelType |
Definition at line 43 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::DiffusionTensor3D<TensorPixelType> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::TensorType |
Definition at line 48 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Image<VectorType,3> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::VectorImageType |
Definition at line 46 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| typedef itk::Vector<TensorPixelType,7> mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::VectorType |
Definition at line 45 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
| mitk::TeemDiffusionTensor3DReconstructionImageFilter< D, T >::TeemDiffusionTensor3DReconstructionImageFilter | ( | ) | [protected] |
Definition at line 33 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp.
: m_EstimateErrorImage(false),m_Sigma(-19191919), m_EstimationMethod(TeemTensorEstimationMethodsLLS), m_NumIterations(1),m_ConfidenceThreshold(-19191919.0), m_ConfidenceFuzzyness(0.0),m_MinPlausibleValue(1.0) { }
| mitk::TeemDiffusionTensor3DReconstructionImageFilter< D, T >::~TeemDiffusionTensor3DReconstructionImageFilter | ( | ) | [protected, virtual] |
Definition at line 43 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp.
{
}
| virtual const char* mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetClassName | ( | ) | const [virtual] |
| virtual float mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetConfidenceFuzzyness | ( | ) | [virtual] |
| virtual double mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetConfidenceThreshold | ( | ) | [virtual] |
| virtual bool mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetEstimateErrorImage | ( | ) | [virtual] |
| virtual TeemTensorEstimationMethods mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetEstimationMethod | ( | ) | [virtual] |
| virtual DiffusionImage<DiffusionImagePixelType>::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetInput | ( | ) | [virtual] |
| virtual double mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetMinPlausibleValue | ( | ) | [virtual] |
| virtual int mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetNumIterations | ( | ) | [virtual] |
| virtual mitk::TensorImage::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetOutput | ( | ) | [virtual] |
| virtual mitk::TensorImage::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetOutputItk | ( | ) | [virtual] |
| virtual float mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::GetSigma | ( | ) | [virtual] |
| static Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::New | ( | ) | [static] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetConfidenceFuzzyness | ( | float | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetConfidenceThreshold | ( | double | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetEstimateErrorImage | ( | bool | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetEstimationMethod | ( | TeemTensorEstimationMethods | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetInput | ( | typename DiffusionImage< DiffusionImagePixelType >::Pointer | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetMinPlausibleValue | ( | double | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetNumIterations | ( | int | _arg ) | [virtual] |
| virtual void mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::SetSigma | ( | float | _arg ) | [virtual] |
| void mitk::TeemDiffusionTensor3DReconstructionImageFilter< D, T >::Update | ( | ) | [virtual] |
Definition at line 76 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.cpp.
References file_replace(), MITK_ERROR, mitk::TensorImage::New(), mitk::TeemTensorEstimationMethodsLLS, mitk::TeemTensorEstimationMethodsMLE, mitk::TeemTensorEstimationMethodsNLS, and mitk::TeemTensorEstimationMethodsWLS.
{
// save input image to nrrd file in temp-folder
char filename[512];
srand((unsigned)time(0));
int random_integer = rand();
sprintf( filename, "dwi_%d.nhdr",random_integer);
typedef mitk::NrrdDiffusionImageWriter<D> WriterType;
typename WriterType::Pointer nrrdWriter = WriterType::New();
nrrdWriter->SetInput( m_Input );
//nrrdWriter->SetDirections(m_Input->GetDirections());
//nrrdWriter->SetB_Value(m_Input->GetB_Value());
nrrdWriter->SetFileName(filename);
try
{
nrrdWriter->Update();
}
catch (itk::ExceptionObject e)
{
std::cout << e << std::endl;
}
file_replace(filename,"vector","list");
// build up correct command from input params
char command[4096];
sprintf( command, "tend estim -i %s -B kvp -o tensors_%d.nhdr -knownB0 true",
filename, random_integer);
//m_DiffusionImages;
if(m_EstimateErrorImage)
{
sprintf( command, "%s -ee error_image_%d.nhdr", command, random_integer);
}
if(m_Sigma != -19191919)
{
sprintf( command, "%s -sigma %f", command, m_Sigma);
}
switch(m_EstimationMethod)
{
case TeemTensorEstimationMethodsLLS:
sprintf( command, "%s -est lls", command);
break;
case TeemTensorEstimationMethodsMLE:
sprintf( command, "%s -est mle", command);
break;
case TeemTensorEstimationMethodsNLS:
sprintf( command, "%s -est nls", command);
break;
case TeemTensorEstimationMethodsWLS:
sprintf( command, "%s -est wls", command);
break;
}
sprintf( command, "%s -wlsi %d", command, m_NumIterations);
if(m_ConfidenceThreshold != -19191919.0)
{
sprintf( command, "%s -t %f", command, m_ConfidenceThreshold);
}
sprintf( command, "%s -soft %f", command, m_ConfidenceFuzzyness);
sprintf( command, "%s -mv %f", command, m_MinPlausibleValue);
// call tend estim command
std::cout << "Calling <" << command << ">" << std::endl;
int success = system(command);
if(!success)
{
MITK_ERROR << "system command could not be called!";
}
remove(filename);
sprintf( filename, "dwi_%d.raw", random_integer);
remove(filename);
// change kind from tensor to vector
sprintf( filename, "tensors_%d.nhdr", random_integer);
file_replace(filename,"3D-masked-symmetric-matrix","vector");
//file_replace(filename,"3D-symmetric-matrix","vector");
//itksys::SystemTools::ReplaceString(line,"3D-masked-symmetric-matrix","vector");
//itksys::SystemTools::ReplaceString(line,"vector","domain");
// read result as mitk::Image and provide it in m_Output
typedef itk::ImageFileReader<VectorImageType> FileReaderType;
typename FileReaderType::Pointer reader = FileReaderType::New();
reader->SetFileName(filename);
reader->Update();
typename VectorImageType::Pointer vecImage = reader->GetOutput();
remove(filename);
sprintf( filename, "tensors_%d.raw", random_integer);
remove(filename);
typename ItkTensorImageType::Pointer itkTensorImage = ItkTensorImageType::New();
itkTensorImage->SetSpacing( vecImage->GetSpacing() ); // Set the image spacing
itkTensorImage->SetOrigin( vecImage->GetOrigin() ); // Set the image origin
itkTensorImage->SetDirection( vecImage->GetDirection() ); // Set the image direction
itkTensorImage->SetLargestPossibleRegion( vecImage->GetLargestPossibleRegion() );
itkTensorImage->SetBufferedRegion( vecImage->GetLargestPossibleRegion() );
itkTensorImage->SetRequestedRegion( vecImage->GetLargestPossibleRegion() );
itkTensorImage->Allocate();
itk::ImageRegionIterator<VectorImageType> it(vecImage,
vecImage->GetLargestPossibleRegion());
itk::ImageRegionIterator<ItkTensorImageType> it2(itkTensorImage,
itkTensorImage->GetLargestPossibleRegion());
it2 = it2.Begin();
//#pragma omp parallel private (it)
{
for(it=it.Begin();!it.IsAtEnd(); ++it, ++it2)
{
//#pragma omp single nowait
{
VectorType vec = it.Get();
TensorType tensor;
for(int i=1;i<7;i++)
tensor[i-1] = vec[i] * vec[0];
it2.Set( tensor );
}
} // end for
} // end ompparallel
m_OutputItk = mitk::TensorImage::New();
m_OutputItk->InitializeByItk(itkTensorImage.GetPointer());
m_OutputItk->SetVolume( itkTensorImage->GetBufferPointer() );
// in case: read resulting error-image and provide it in m_ErrorImage
if(m_EstimateErrorImage)
{
// open error image here
}
}
float mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_ConfidenceFuzzyness [protected] |
Definition at line 104 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
double mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_ConfidenceThreshold [protected] |
Definition at line 103 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
mitk::Image::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_ErrorImage [protected] |
Definition at line 108 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
bool mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_EstimateErrorImage [protected] |
Definition at line 99 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
TeemTensorEstimationMethods mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_EstimationMethod [protected] |
Definition at line 101 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
DiffusionImage<DiffusionImagePixelType>::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_Input [protected] |
Definition at line 98 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
double mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_MinPlausibleValue [protected] |
Definition at line 105 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
int mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_NumIterations [protected] |
Definition at line 102 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
mitk::TensorImage::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_Output [protected] |
Definition at line 106 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
mitk::TensorImage::Pointer mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_OutputItk [protected] |
Definition at line 107 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
float mitk::TeemDiffusionTensor3DReconstructionImageFilter< DiffusionImagePixelType, TTensorPixelType >::m_Sigma [protected] |
Definition at line 100 of file mitkTeemDiffusionTensor3DReconstructionImageFilter.h.
1.7.2