#include <mitkVolumeVisualizationImagePreprocessor.h>
Public Types | |
typedef VolumeVisualizationImagePreprocessor | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer < const Self > | ConstPointer |
Public Member Functions | |
virtual const char * | GetClassName () const |
mitk::Image::Pointer | Process (mitk::Image::Pointer originalCT, mitk::Image::Pointer originalLiverMask) |
double | GetEstimatedThreshold () const |
double | GetMinThreshold () const |
double | GetMaxThreshold () const |
double | GetLastUsedThreshold () const |
mitk::TransferFunction::Pointer | GetInitialTransferFunction () |
void | UpdateTransferFunction (mitk::TransferFunction::Pointer tf, int treshold) |
Static Public Member Functions | |
static Pointer | New () |
Protected Types | |
typedef itk::Image< short, 3 > | CTImage |
typedef itk::ImageRegionIterator < CTImage > | CTIteratorType |
typedef itk::ImageRegionIteratorWithIndex < CTImage > | CTIteratorIndexType |
typedef itk::Image< unsigned char, 3 > | BinImage |
typedef itk::ImageRegionIterator < BinImage > | BinIteratorType |
typedef itk::ImageRegionIteratorWithIndex < BinImage > | BinIteratorIndexType |
typedef itk::Image< unsigned short, 3 > | LabelImage |
typedef itk::ImageRegionIterator < LabelImage > | LabelIteratorType |
Protected Member Functions | |
VolumeVisualizationImagePreprocessor () | |
~VolumeVisualizationImagePreprocessor () | |
CTImage::Pointer | Composite (CTImage::Pointer work, BinImage::Pointer mask, BinImage::Pointer dilated, BinImage::Pointer eroded) |
void | DetermineBoundingBox (BinImage::Pointer mask) |
CTImage::Pointer | Crop (CTImage::Pointer src) |
BinImage::Pointer | Crop (BinImage::Pointer src) |
BinImage::Pointer | Dilate (BinImage::Pointer src) |
BinImage::Pointer | Erode (BinImage::Pointer src) |
CTImage::Pointer | Gaussian (CTImage::Pointer src) |
LabelImage::Pointer | ConnectComponents (BinImage::Pointer src) |
LabelImage::Pointer | RelabelComponents (LabelImage::Pointer src) |
BinImage::Pointer | Threshold (CTImage::Pointer src, int threshold) |
int | GetHistogrammValueFromTop (double part) |
int | GetHistogrammValueFromBottom (double part) |
Protected Attributes | |
double | m_OutOfLiverValue |
double | m_surfaceValue |
double | m_realSurfaceValue |
double | m_realInLiverValue |
double | m_EstimatedThreshold |
double | m_GreatestStructureThreshold |
double | m_MinThreshold |
double | m_MaxThreshold |
int | m_MinX |
int | m_MinY |
int | m_MinZ |
int | m_MaxX |
int | m_MaxY |
int | m_MaxZ |
int | m_LastUsedTreshold |
int | histogramm [65536] |
int | total |
Definition at line 57 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::Image<unsigned char, 3 > mitk::VolumeVisualizationImagePreprocessor::BinImage [protected] |
Definition at line 100 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::ImageRegionIteratorWithIndex< BinImage > mitk::VolumeVisualizationImagePreprocessor::BinIteratorIndexType [protected] |
Definition at line 102 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::ImageRegionIterator< BinImage > mitk::VolumeVisualizationImagePreprocessor::BinIteratorType [protected] |
Definition at line 101 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::SmartPointer<const Self> mitk::VolumeVisualizationImagePreprocessor::ConstPointer |
Definition at line 61 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::Image<short, 3> mitk::VolumeVisualizationImagePreprocessor::CTImage [protected] |
Definition at line 96 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::ImageRegionIteratorWithIndex< CTImage > mitk::VolumeVisualizationImagePreprocessor::CTIteratorIndexType [protected] |
Definition at line 98 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::ImageRegionIterator< CTImage > mitk::VolumeVisualizationImagePreprocessor::CTIteratorType [protected] |
Definition at line 97 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::Image<unsigned short, 3 > mitk::VolumeVisualizationImagePreprocessor::LabelImage [protected] |
Definition at line 104 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::ImageRegionIterator< LabelImage > mitk::VolumeVisualizationImagePreprocessor::LabelIteratorType [protected] |
Definition at line 105 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::SmartPointer<Self> mitk::VolumeVisualizationImagePreprocessor::Pointer |
Definition at line 61 of file mitkVolumeVisualizationImagePreprocessor.h.
Definition at line 61 of file mitkVolumeVisualizationImagePreprocessor.h.
typedef itk::Object mitk::VolumeVisualizationImagePreprocessor::Superclass |
Definition at line 61 of file mitkVolumeVisualizationImagePreprocessor.h.
mitk::VolumeVisualizationImagePreprocessor::VolumeVisualizationImagePreprocessor | ( | ) | [protected] |
Definition at line 31 of file mitkVolumeVisualizationImagePreprocessor.cpp.
: m_OutOfLiverValue(-512), m_surfaceValue(-256), m_realSurfaceValue(0), m_EstimatedThreshold( 150.0 ), m_MinThreshold( 0.0 ), m_MaxThreshold( 250.0 ) { }
mitk::VolumeVisualizationImagePreprocessor::~VolumeVisualizationImagePreprocessor | ( | ) | [protected] |
Definition at line 41 of file mitkVolumeVisualizationImagePreprocessor.cpp.
{ }
mitk::VolumeVisualizationImagePreprocessor::CTImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Composite | ( | CTImage::Pointer | work, |
BinImage::Pointer | mask, | ||
BinImage::Pointer | dilated, | ||
BinImage::Pointer | eroded | ||
) | [protected] |
Definition at line 450 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References GetHistogrammValueFromBottom(), GetHistogrammValueFromTop(), histogramm, int(), m_EstimatedThreshold, m_GreatestStructureThreshold, m_MaxThreshold, m_MinThreshold, m_OutOfLiverValue, m_realInLiverValue, m_realSurfaceValue, m_surfaceValue, QuadProgPP::sum(), total, and VVP_INFO.
Referenced by Process().
{ VVP_INFO << "Compositing..."; /* itk::OrImageFilter<CTImage, CTImage, CTImage>::Pointer nullFilter= itk::OrImageFilter<CTImage, CTImage, CTImage>::New(); nullFilter->SetInput1( input ); nullFilter->SetInput2( input ); nullFilter->UpdateLargestPossibleRegion(); CTImage::Pointer work = nullFilter->GetOutput(); */ CTIteratorIndexType workIt( work, work->GetRequestedRegion() ); BinIteratorType maskIt( mask, mask->GetRequestedRegion() ); BinIteratorType dilateIt( dilated, dilated->GetRequestedRegion() ); BinIteratorType erodeIt( eroded, eroded->GetRequestedRegion() ); workIt.GoToBegin(); maskIt.GoToBegin(); dilateIt.GoToBegin(); erodeIt.GoToBegin(); double sum=0; int num=0; double sumIn=0; int numIn=0; int _min=32767,_max=-32768; total=0; memset(histogramm,0,sizeof(int)*65536); while ( ! ( workIt.IsAtEnd() || maskIt.IsAtEnd() || dilateIt.IsAtEnd() || erodeIt.IsAtEnd() ) ) { int value = workIt.Get(); unsigned char mask = maskIt.Get(); unsigned char dilate = dilateIt.Get(); unsigned char erode = erodeIt.Get(); //baut Histogramm auf vom Leberinneren if(mask != 0) { sumIn+=value; numIn++; histogramm[32768+(int)value]++; total++; } //Mittelwert der äußeren Schicht if(erode != 0 && mask != 0 ) { sum+=value; num++; if(value>_max) _max=value; if(value<_min) _min=value; } //markiere Leberoberfläche mit -1024 und update bounding box if(erode == 0 && dilate != 0 ) { value = -1024; } else if( erode != 0 && mask != 0 )//Leberinneres, behalte Grauwert bei { } else//markiere äußeres mit -2048 { value = -2048; } workIt.Set(value); ++workIt; ++maskIt; ++dilateIt; ++erodeIt; } VVP_INFO << "liver consists of " << total << " samples."; m_GreatestStructureThreshold = GetHistogrammValueFromTop(0.20); m_EstimatedThreshold = GetHistogrammValueFromTop(0.10); m_MaxThreshold=GetHistogrammValueFromTop(0.001); m_MinThreshold=GetHistogrammValueFromBottom(0.20); VVP_INFO << "threshold range: (" << m_MinThreshold << ";" << m_MaxThreshold << ") estimated vessel threshold: " << m_EstimatedThreshold ; VVP_INFO << "m_GreatestStructureThreshold: " << m_GreatestStructureThreshold; // BinImage::Pointer binImageThreshold= Threshold(work,m_GreatestStructureThreshold ); // LabelImage::Pointer LabelImageunsorted=ConnectComponents(binImageThreshold); // LabelImage::Pointer LabelImageSorted= RelabelComponents(LabelImageunsorted); if(num>0) m_realSurfaceValue=sum/num; else m_realSurfaceValue=0; if(numIn>0) m_realInLiverValue=sumIn/numIn; else m_realInLiverValue=0; m_surfaceValue = _min - 40; m_OutOfLiverValue = m_surfaceValue - 40; // LabelIteratorType labelIt( LabelImageSorted, LabelImageSorted->GetRequestedRegion() ); workIt.GoToBegin(); // labelIt.GoToBegin(); //int numGesetzt=0; //int numGelassen=0; while ( ! workIt.IsAtEnd() ) { int value = workIt.Get(); // int label = labelIt.Get(); if(value == -1024 ) { value = m_surfaceValue; } else if( value == -2048 ) { value = m_OutOfLiverValue; } else {//innerhalb der Leber //Label ungleich 1 -->value auf min setzen /* if (label != 1){ numGesetzt++; value=m_realInLiverValue; } else { //value=m_EstimatedThreshold; numGelassen++; } */ } workIt.Set(value); ++workIt; // ++labelIt; } //VVP_INFO << "gesetzt: " << numGesetzt << " --- gelassen: " << numGelassen; VVP_INFO << "OutOfLiver value: " << m_OutOfLiverValue; VVP_INFO << "surface value: " << m_surfaceValue; VVP_INFO << "real surface value: " << m_realSurfaceValue; VVP_INFO << "real inLiver value:" << m_realInLiverValue; work->DisconnectPipeline(); return work; }
VolumeVisualizationImagePreprocessor::LabelImage::Pointer mitk::VolumeVisualizationImagePreprocessor::ConnectComponents | ( | BinImage::Pointer | src ) | [protected] |
Definition at line 150 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
{ VVP_INFO << "Connect Components..."; LabelImage::Pointer dst = LabelImage::New(); typedef itk::ConnectedComponentImageFilter< BinImage, LabelImage > myFilterType; myFilterType::Pointer myFilter = myFilterType::New(); myFilter->SetInput(src); myFilter->Update(); dst = myFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
CTImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Crop | ( | CTImage::Pointer | src ) | [protected] |
Referenced by Process().
BinImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Crop | ( | BinImage::Pointer | src ) | [protected] |
void mitk::VolumeVisualizationImagePreprocessor::DetermineBoundingBox | ( | BinImage::Pointer | mask ) | [protected] |
Definition at line 380 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References m_MaxX, m_MaxY, m_MaxZ, m_MinX, m_MinY, m_MinZ, and VVP_INFO.
Referenced by Process().
{ VVP_INFO << "determining Bounding Box..."; BinIteratorIndexType maskIt( mask, mask->GetRequestedRegion() ); maskIt.GoToBegin(); int totalMinX; int totalMinY; int totalMinZ; int totalMaxX; int totalMaxY; int totalMaxZ; // Initialize Bounding Box { m_MinX=m_MinY=m_MinZ = 1000000; m_MaxX=m_MaxY=m_MaxZ = -1000000; totalMinX=totalMinY=totalMinZ = 1000000; totalMaxX=totalMaxY=totalMaxZ = -1000000; } while ( ! maskIt.IsAtEnd() ) { BinIteratorIndexType::IndexType idx = maskIt.GetIndex(); int x=idx.GetElement(0); int y=idx.GetElement(1); int z=idx.GetElement(2); if(x<totalMinX) totalMinX=x; if(y<totalMinY) totalMinY=y; if(z<totalMinZ) totalMinZ=z; if(x>totalMaxX) totalMaxX=x; if(y>totalMaxY) totalMaxY=y; if(z>totalMaxZ) totalMaxZ=z; if(maskIt.Get()) { if(x<m_MinX) m_MinX=x; if(y<m_MinY) m_MinY=y; if(z<m_MinZ) m_MinZ=z; if(x>m_MaxX) m_MaxX=x; if(y>m_MaxY) m_MaxY=y; if(z>m_MaxZ) m_MaxZ=z; } ++maskIt; } int border = 3; m_MinX -= border; if(m_MinX < totalMinX ) m_MinX = totalMinX; m_MinY -= border; if(m_MinY < totalMinY ) m_MinY = totalMinY; m_MinZ -= border; if(m_MinZ < totalMinZ ) m_MinZ = totalMinZ; m_MaxX += border; if(m_MaxX > totalMaxX ) m_MaxX = totalMaxX; m_MaxY += border; if(m_MaxY > totalMaxY ) m_MaxY = totalMaxY; m_MaxZ += border; if(m_MaxZ > totalMaxZ ) m_MaxZ = totalMaxZ; VVP_INFO << "Bounding box" << " m_MinX: " << m_MinX << " m_MaxX: " << m_MaxX << "\n m_MinY: " << m_MinY << " m_MaxY: " << m_MaxY << "\n m_MinZ: " << m_MinZ << " m_MaxZ: " << m_MaxZ; }
VolumeVisualizationImagePreprocessor::BinImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Dilate | ( | BinImage::Pointer | src ) | [protected] |
the original mask is decrease by 1 Voxel
Definition at line 212 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
Referenced by Process().
{ VVP_INFO << "Dilating..."; BinImage::Pointer dst = BinImage::New(); typedef itk::BinaryDilateImageFilter< BinImage, BinImage,itk::BinaryBallStructuringElement< unsigned char, 3> > BinaryDilateImageType; BinaryDilateImageType::KernelType myKernel; myKernel.SetRadius(1); myKernel.CreateStructuringElement(); BinaryDilateImageType::Pointer DilateFilter = BinaryDilateImageType::New(); DilateFilter->SetInput(src); DilateFilter->SetKernel(myKernel); DilateFilter->SetDilateValue(1); //to be dilated to DilateFilter->Update(); dst = DilateFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
VolumeVisualizationImagePreprocessor::BinImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Erode | ( | BinImage::Pointer | src ) | [protected] |
Definition at line 234 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
Referenced by Process().
{ VVP_INFO << "Eroding..."; BinImage::Pointer dst = BinImage::New(); typedef itk::BinaryErodeImageFilter< BinImage, BinImage,itk::BinaryBallStructuringElement< unsigned char, 3> > BinaryErodeImageType; BinaryErodeImageType::KernelType myKernel; myKernel.SetRadius(1); myKernel.CreateStructuringElement(); BinaryErodeImageType::Pointer ErodeFilter = BinaryErodeImageType::New(); ErodeFilter->SetInput(src); ErodeFilter->SetKernel(myKernel); ErodeFilter->SetErodeValue(0); //to be Eroded to ErodeFilter->Update(); dst = ErodeFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
VolumeVisualizationImagePreprocessor::CTImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Gaussian | ( | CTImage::Pointer | src ) | [protected] |
Definition at line 257 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
Referenced by Process().
{ VVP_INFO << "Gaussian..."; typedef itk::DiscreteGaussianImageFilter< CTImage, CTImage> GaussianFilterType; GaussianFilterType::Pointer gaussianFilter = GaussianFilterType::New(); gaussianFilter->SetInput( src ); gaussianFilter->SetVariance( 1 ); // gaussianFilter->SetMaximumError( 0.1 ); gaussianFilter->SetMaximumKernelWidth ( 8 ); gaussianFilter->UpdateLargestPossibleRegion(); CTImage::Pointer dst = gaussianFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
virtual const char* mitk::VolumeVisualizationImagePreprocessor::GetClassName | ( | ) | const [virtual] |
double mitk::VolumeVisualizationImagePreprocessor::GetEstimatedThreshold | ( | ) | const [inline] |
Definition at line 70 of file mitkVolumeVisualizationImagePreprocessor.h.
{ return m_EstimatedThreshold; }
int mitk::VolumeVisualizationImagePreprocessor::GetHistogrammValueFromBottom | ( | double | part ) | [protected] |
Definition at line 360 of file mitkVolumeVisualizationImagePreprocessor.cpp.
Referenced by Composite().
{ int unteren = total * part; for( int r = -32768 ; r <= 32767 ; r++ ) if( (unteren -= histogramm[32768+(int)r]) <= 0 ) return r; return 0; // will be never reached }
int mitk::VolumeVisualizationImagePreprocessor::GetHistogrammValueFromTop | ( | double | part ) | [protected] |
Definition at line 370 of file mitkVolumeVisualizationImagePreprocessor.cpp.
Referenced by Composite().
{ int oberen = total * part; for( int r = 32767 ; r >= -32768 ; r-- ) if( (oberen -= histogramm[32768+(int)r]) <= 0 ) return r; return 0; // will be never reached }
TransferFunction::Pointer mitk::VolumeVisualizationImagePreprocessor::GetInitialTransferFunction | ( | ) |
Definition at line 48 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References m_EstimatedThreshold, m_LastUsedTreshold, m_MaxThreshold, m_OutOfLiverValue, m_realSurfaceValue, m_surfaceValue, New(), and VVP_INFO.
{ int treshold = m_EstimatedThreshold; double opacity = 0.005; double maskValue = m_OutOfLiverValue; double surfaceValue = m_surfaceValue; double realSurfaceValue = m_realSurfaceValue; //double surfaceSteepness = 0.0; VVP_INFO << "using threshold of " << treshold << " and opacity of " << opacity; TransferFunction::Pointer tf = TransferFunction::New(); // grayvalue->opacity { vtkPiecewiseFunction *f=tf->GetScalarOpacityFunction(); f->RemoveAllPoints(); f->AddPoint(maskValue,0); f->AddPoint(maskValue+1,0); f->AddPoint(surfaceValue,0.05); f->AddPoint(realSurfaceValue,opacity); f->AddPoint(treshold-1,opacity); f->AddPoint(treshold+4,0.8); f->AddPoint(m_MaxThreshold+1,0.8); f->ClampingOn(); f->Modified(); } // gradient at grayvalue->opacity { vtkPiecewiseFunction *f=tf->GetGradientOpacityFunction(); f->RemoveAllPoints(); f->AddPoint( -1000.0, 1.0 ); f->AddPoint( 1000, 1.0 ); f->ClampingOn(); f->Modified(); } // grayvalue->color { vtkColorTransferFunction *ctf=tf->GetColorTransferFunction(); ctf->RemoveAllPoints(); ctf->AddRGBPoint( maskValue, 0.5, 0.0, 0.0 ); ctf->AddRGBPoint( maskValue+1, 0.5, 0.0, 0.0 ); ctf->AddRGBPoint( surfaceValue, 1.0, 0.0, 0.0 ); //0.5 ctf->AddRGBPoint( realSurfaceValue, 0.2, 0.0, 0.0 ); ctf->AddRGBPoint( treshold-32, 0.2, 0.0, 0.0 ); ctf->AddRGBPoint( treshold, 251/255.0, 1.0, 0.0 ); ctf->AddRGBPoint( m_MaxThreshold+1, 251/255.0, 1.0, 0.0 ); ctf->ClampingOn(); ctf->Modified(); } m_LastUsedTreshold = treshold; return tf; }
double mitk::VolumeVisualizationImagePreprocessor::GetLastUsedThreshold | ( | ) | const [inline] |
Definition at line 85 of file mitkVolumeVisualizationImagePreprocessor.h.
{ return m_LastUsedTreshold; }
double mitk::VolumeVisualizationImagePreprocessor::GetMaxThreshold | ( | ) | const [inline] |
Definition at line 80 of file mitkVolumeVisualizationImagePreprocessor.h.
{ return m_MaxThreshold; }
double mitk::VolumeVisualizationImagePreprocessor::GetMinThreshold | ( | ) | const [inline] |
Definition at line 75 of file mitkVolumeVisualizationImagePreprocessor.h.
{ return m_MinThreshold; }
static Pointer mitk::VolumeVisualizationImagePreprocessor::New | ( | ) | [static] |
Referenced by ConnectComponents(), Dilate(), Erode(), Gaussian(), GetInitialTransferFunction(), Process(), RelabelComponents(), and Threshold().
Image::Pointer mitk::VolumeVisualizationImagePreprocessor::Process | ( | mitk::Image::Pointer | originalCT, |
mitk::Image::Pointer | originalLiverMask | ||
) |
Definition at line 620 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References mitk::CastToItkImage(), mitk::CastToMitkImage(), Composite(), Crop(), DetermineBoundingBox(), Dilate(), Erode(), Gaussian(), m_MaxX, m_MaxY, m_MaxZ, m_MinX, m_MinY, m_MinZ, New(), and VVP_INFO.
{ VVP_INFO << "Processing..."; // converting mitk image -> itk image CTImage::Pointer CTImageWork = CTImage::New(); CastToItkImage( m_originalCT, CTImageWork ); // converting mitk image -> itk image BinImage::Pointer BinImageMask = BinImage::New(); CastToItkImage( m_originalLiverMask, BinImageMask ); DetermineBoundingBox( BinImageMask ); if( m_MaxX < m_MinX || m_MaxY < m_MinY || m_MaxZ < m_MinZ ) return 0; CTImageWork = Gaussian(Crop( CTImageWork )); BinImageMask = Crop( BinImageMask ); CTImage::Pointer itkResult =Composite(CTImageWork,BinImageMask,Dilate(BinImageMask),Erode(BinImageMask)); mitk::Image::Pointer mitkResult= mitk::Image::New(); mitk::CastToMitkImage( itkResult, mitkResult ); //TODO here we can perhaps save memory VVP_INFO << "Finished..."; return mitkResult; }
VolumeVisualizationImagePreprocessor::LabelImage::Pointer mitk::VolumeVisualizationImagePreprocessor::RelabelComponents | ( | LabelImage::Pointer | src ) | [protected] |
Definition at line 193 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
{ VVP_INFO << "Relabeling Components..."; LabelImage::Pointer dst = LabelImage::New(); typedef itk::RelabelComponentImageFilter< LabelImage, LabelImage > myFilterType; myFilterType::Pointer myFilter = myFilterType::New(); myFilter->SetInput(src); myFilter->Update(); dst = myFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
VolumeVisualizationImagePreprocessor::BinImage::Pointer mitk::VolumeVisualizationImagePreprocessor::Threshold | ( | CTImage::Pointer | src, |
int | threshold | ||
) | [protected] |
Definition at line 169 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References New(), and VVP_INFO.
{ VVP_INFO << "thresholding..."; BinImage::Pointer dst = BinImage::New(); typedef itk::ThresholdLabelerImageFilter< CTImage, BinImage > myFilterType; myFilterType::Pointer myFilter = myFilterType::New(); myFilter->SetInput(src); myFilterType::ThresholdVector tv; tv.push_back(threshold); myFilter->SetThresholds(tv); myFilter->Update(); dst = myFilter->GetOutput(); dst->DisconnectPipeline(); return dst; }
void mitk::VolumeVisualizationImagePreprocessor::UpdateTransferFunction | ( | mitk::TransferFunction::Pointer | tf, |
int | treshold | ||
) |
Definition at line 112 of file mitkVolumeVisualizationImagePreprocessor.cpp.
References m_LastUsedTreshold.
{ double opacity = 0.005; //double maskValue = m_OutOfLiverValue; //double surfaceValue = m_surfaceValue; //double realSurfaceValue = m_realSurfaceValue; //double surfaceSteepness = 0.0; //VVP_INFO << "changing to threshold of " << treshold << " and opacity of " << opacity; // grayvalue->opacity { vtkPiecewiseFunction *f=tf->GetScalarOpacityFunction(); f->RemovePoint( m_LastUsedTreshold-1 ); f->AddPoint(treshold-1,opacity); f->RemovePoint( m_LastUsedTreshold+4 ); f->AddPoint(treshold+4,0.8); } // grayvalue->color { vtkColorTransferFunction *ctf=tf->GetColorTransferFunction(); ctf->RemovePoint( m_LastUsedTreshold-32 ); ctf->AddRGBPoint( treshold-32, 0.2, 0.0, 0.0 ); ctf->RemovePoint( m_LastUsedTreshold ); ctf->AddRGBPoint( treshold, 251/255.0, 1.0, 0.0 ); } m_LastUsedTreshold = treshold; }
int mitk::VolumeVisualizationImagePreprocessor::histogramm[65536] [protected] |
Definition at line 171 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite().
double mitk::VolumeVisualizationImagePreprocessor::m_EstimatedThreshold [protected] |
Definition at line 150 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite(), and GetInitialTransferFunction().
double mitk::VolumeVisualizationImagePreprocessor::m_GreatestStructureThreshold [protected] |
Definition at line 152 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite().
int mitk::VolumeVisualizationImagePreprocessor::m_LastUsedTreshold [protected] |
Definition at line 169 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by GetInitialTransferFunction(), and UpdateTransferFunction().
double mitk::VolumeVisualizationImagePreprocessor::m_MaxThreshold [protected] |
Definition at line 159 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite(), and GetInitialTransferFunction().
int mitk::VolumeVisualizationImagePreprocessor::m_MaxX [protected] |
Definition at line 165 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
int mitk::VolumeVisualizationImagePreprocessor::m_MaxY [protected] |
Definition at line 166 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
int mitk::VolumeVisualizationImagePreprocessor::m_MaxZ [protected] |
Definition at line 167 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
double mitk::VolumeVisualizationImagePreprocessor::m_MinThreshold [protected] |
Definition at line 156 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite().
int mitk::VolumeVisualizationImagePreprocessor::m_MinX [protected] |
Definition at line 161 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
int mitk::VolumeVisualizationImagePreprocessor::m_MinY [protected] |
Definition at line 162 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
int mitk::VolumeVisualizationImagePreprocessor::m_MinZ [protected] |
Definition at line 163 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by DetermineBoundingBox(), and Process().
double mitk::VolumeVisualizationImagePreprocessor::m_OutOfLiverValue [protected] |
Definition at line 139 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite(), and GetInitialTransferFunction().
double mitk::VolumeVisualizationImagePreprocessor::m_realInLiverValue [protected] |
Definition at line 147 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite().
double mitk::VolumeVisualizationImagePreprocessor::m_realSurfaceValue [protected] |
Definition at line 145 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite(), and GetInitialTransferFunction().
double mitk::VolumeVisualizationImagePreprocessor::m_surfaceValue [protected] |
Definition at line 142 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite(), and GetInitialTransferFunction().
int mitk::VolumeVisualizationImagePreprocessor::total [protected] |
Definition at line 172 of file mitkVolumeVisualizationImagePreprocessor.h.
Referenced by Composite().