Seg3D  2.4
Seg3D is a free volume segmentation and processing tool developed by the NIH Center for Integrative Biomedical Computing at the University of Utah Scientific Computing and Imaging (SCI) Institute.
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Seg3D::IntensityCorrectionFilterAlgo Class Reference
Inheritance diagram for Seg3D::IntensityCorrectionFilterAlgo:
Seg3D::ITKFilter Seg3D::LayerFilter Seg3D::LayerAbstractFilter Core::Runnable

Public Types

typedef itk::GradientMagnitudeImageFilter< FLOAT_IMAGE_TYPE, FLOAT_IMAGE_TYPE > GMagFilterType
 
typedef itk::GradientImageFilter< FLOAT_IMAGE_TYPE > GradientFilterType
 
typedef GradientFilterType::OutputImageType GradientImageType
 
typedef GradientImageType::PixelType GradientPixelType
 
typedef itk::ImageRegionIterator< GradientImageType > GradientImageIterator
 
- Public Types inherited from Seg3D::ITKFilter
typedef itk::Image< unsigned short, 3 > USHORT_IMAGE_TYPE
 
typedef itk::Image< unsigned int, 3 > UINT_IMAGE_TYPE
 
typedef itk::Image< float, 3 > FLOAT_IMAGE_TYPE
 
typedef itk::Image< unsigned char, 3 > UCHAR_IMAGE_TYPE
 
typedef Core::ITKImageDataT< float > FLOAT_CONTAINER_TYPE
 
typedef Core::ITKImageDataT< unsigned int > UINT_CONTAINER_TYPE
 
typedef Core::ITKImageDataT< unsigned short > USHORT_CONTAINER_TYPE
 
typedef Core::ITKImageDataT< unsigned char > UCHAR_CONTAINER_TYPE
 

Public Member Functions

float getAx (float w, float nx, float ny, float nz, int order_index)
 
float getAy (float w, float nx, float ny, float nz, int order_index)
 
float getAz (float w, float nx, float ny, float nz, int order_index)
 
this get_itk_image_from_layer (this->src_layer_, input_image)
 
 if (!input_data_block)
 
dgfilter SetInput (input_image->get_image())
 
dgfilter SetVariance (1.0)
 
dgfilter SetMaximumKernelWidth (8)
 
dgfilter SetUseImageSpacingOff ()
 
this forward_abort_to_filter (dgfilter, this->dst_layer_)
 
this observe_itk_progress (dgfilter, this->dst_layer_, 0.0, 0.05)
 
 catch (...)
 
 if (this->check_abort()) return
 
FLOAT_CONTAINER_TYPE::Handle dg_image (new FLOAT_CONTAINER_TYPE( dgfilter->GetOutput()))
 
 if (!dg_image)
 
 for (size_t j=0;j< size;j++)
 
 for (size_t j=0;j< size;j++) data[j]
 
 if (this->check_abort()) return
 
gmag_filter SetInput (dg_image->get_image())
 
this forward_abort_to_filter (gmag_filter, this->dst_layer_)
 
this observe_itk_progress (gmag_filter, this->dst_layer_, 0.1, 0.05)
 
 catch (...)
 
 if (this->check_abort()) return
 
FLOAT_CONTAINER_TYPE::Handle gmag_image (new FLOAT_CONTAINER_TYPE( gmag_filter->GetOutput()))
 
 if (!gmag_image)
 
 if (!gmag_data_block)
 
 for (size_t j=0;j< size;j++) data[j]
 
 if (this->check_abort()) return
 
gradient_filter SetInput (gmag_image->get_image())
 
this forward_abort_to_filter (gradient_filter, this->dst_layer_)
 
this observe_itk_progress (gradient_filter, this->dst_layer_, 0.2, 0.05)
 
 catch (...)
 
 if (this->check_abort()) return
 
GradientImageIterator grad_iter (gradient_image, gradient_image->GetLargestPossibleRegion())
 
 while (!grad_iter.IsAtEnd())
 
vnl_matrix< float > ATA (order, order, 0)
 
vnl_matrix< float > uT (order, 1, 0)
 
 for (size_t z=0;z< size_z;z++)
 
 if (this->check_abort()) return
 
this dst_layer_ update_progress (0.7f)
 
 if (this->check_abort()) return
 
this dst_layer_ update_progress (0.85f)
 
 if (this->check_abort()) return
 
 if (this->check_abort()) return
 
this dst_layer_ update_progress (0.9f)
 
 for (size_t z=0;z< size_z;z++)
 
 for (size_t j=0;j< size;j++)
 
 catch (...)
 
 if (this->check_abort()) return
 
this dst_layer_ update_progress (0.99f)
 
 if (this->preserve_data_format_)
 
virtual std::string get_filter_name () const
 
virtual std::string get_layer_prefix () const
 
- Public Member Functions inherited from Seg3D::LayerFilter
virtual void raise_abort () override
 
virtual bool check_abort () override
 
void raise_stop ()
 
bool check_stop ()
 
virtual void abort_and_wait () override
 
void connect_abort (const LayerHandle &layer)
 
void connect_stop (const LayerHandle &layer)
 
Core::NotifierHandle get_notifier ()
 
bool find_layer (const std::string &layer_id, LayerHandle &layer)
 
bool lock_for_use (LayerHandle layer)
 
bool lock_for_processing (LayerHandle layer)
 
bool lock_for_deletion (LayerHandle layer)
 
bool create_and_lock_data_layer_from_layer (LayerHandle src_layer, LayerHandle &dst_layer)
 
bool create_and_lock_data_layer (const Core::GridTransform &grid_trans, LayerHandle src_layer, LayerHandle &dst_layer)
 
bool create_cropped_large_volume_layer (const Core::GridTransform &crop_trans, LayerHandle src_layer, LayerHandle &dst_layer)
 
bool create_and_lock_mask_layer_from_layer (LayerHandle src_layer, LayerHandle &dst_layer)
 
bool create_and_lock_mask_layer_from_layer (LayerHandle src_layer, LayerHandle &dst_layer, std::string dst_name)
 
bool create_and_lock_mask_layer (const Core::GridTransform &grid_trans, LayerHandle src_layer, LayerHandle &dst_layer)
 
bool dispatch_unlock_layer (LayerHandle layer)
 
bool dispatch_delete_layer (LayerHandle layer)
 
bool dispatch_insert_data_volume_into_layer (LayerHandle layer, Core::DataVolumeHandle data, bool update_histogram)
 
bool dispatch_insert_mask_volume_into_layer (LayerHandle layer, Core::MaskVolumeHandle mask)
 
void create_undo_redo_and_provenance_record (Core::ActionContextHandle context, Core::ActionHandle action, bool split_prov=false)
 
bool update_provenance_action_string (Core::ActionHandle action)
 
void set_sandbox (SandboxID sandbox)
 
SandboxID get_sandbox ()
 
void report_error (const std::string &error)
 
Layer::filter_key_type get_key () const
 

Public Attributes

LayerHandle src_layer_
 
LayerHandle dst_layer_
 
int order_
 
double edge_
 
bool preserve_data_format_
 
TYPED_CONTAINER_TYPE::Handle input_image
 
Core::DataBlockHandle input_data_block = Core::ITKDataBlock::New( input_image )
 
DGFilterType::Pointer dgfilter = DGFilterType::New()
 
 try
 
Core::DataBlockHandle dg_data_block = Core::ITKDataBlock::New( dg_image )
 
float data_min = std::numeric_limits<float>::max()
 
float data_max = std::numeric_limits<float>::min()
 
size_t size = dg_data_block->get_size()
 
GMagFilterType::Pointer gmag_filter = GMagFilterType::New()
 
Core::DataBlockHandle gmag_data_block = Core::ITKDataBlock::New( gmag_image )
 
const float inv_edge_sqr = 1.0 / ( this->edge_ * this->edge_ )
 
GradientFilterType::Pointer gradient_filter = GradientFilterType::New()
 
GradientImageType::Pointer gradient_image = gradient_filter->GetOutput()
 
size_t size_x = input_image->get_nx()
 
size_t size_y = input_image->get_ny()
 
size_t size_z = input_image->get_nz()
 
float xscale = static_cast<float>( size_x + size_y + size_z ) / 8.0f
 
float yscale = static_cast<float>( size_x + size_y + size_z ) / 8.0f
 
float zscale = static_cast<float>( size_x + size_y + size_z ) / 8.0f
 
float xcenter = static_cast<float>( size_x ) / 2.0
 
float ycenter = static_cast<float>( size_y ) / 2.0
 
float zcenter = static_cast<float>( size_z ) / 2.0
 
float * W = reinterpret_cast<float*>( gmag_data_block->get_data() )
 
float * res = reinterpret_cast<float*>( dg_data_block->get_data() )
 
VALUE_TYPE * input = reinterpret_cast<VALUE_TYPE*>( input_data_block->get_data() )
 
size_t j = 0
 
 gradient_image = 0
 Clear memory for image.
 
const int order = order_counts[ this->order_ ]
 
vnl_matrix< float > ATA_inv = vnl_matrix_inverse<float>(ATA)
 
vnl_matrix< float > alphaM = ATA_inv * uT
 
vnl_vector< float > alpha = alphaM.get_column(0)
 
size_t i = 0
 
float new_data_min = std::numeric_limits<float>::max()
 
float new_data_max = std::numeric_limits<float>::min()
 
float factor = ( data_max - data_min ) / ( new_data_max - new_data_min )
 
 else
 

Static Public Attributes

static int order_counts [5] = { 0, 3, 9, 19, 34 }
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::Runnable
static void Start (RunnableHandle runnable)
 
- Protected Member Functions inherited from Seg3D::ITKFilter
template<class T >
bool get_itk_image_from_layer (const LayerHandle &layer, typename Core::ITKImageDataT< T >::Handle &image, bool invert=false)
 
template<class T >
bool get_itk_image_from_mask_layer (const LayerHandle &layer, typename Core::ITKImageDataT< T >::Handle &image, double label=1.0)
 
template<class T >
bool insert_itk_image_into_layer (const LayerHandle &layer, typename itk::Image< T, 3 > *itk_image)
 
template<class T >
bool insert_itk_image_pointer_into_layer (const LayerHandle &layer, typename itk::Image< T, 3 >::Pointer itk_image)
 
template<class T >
bool insert_itk_positive_labels_into_mask_layer (const LayerHandle &layer, typename itk::Image< T, 3 > *itk_image, bool invert=false)
 
template<class T >
bool insert_itk_positive_labels_pointer_into_mask_layer (const LayerHandle &layer, typename itk::Image< T, 3 >::Pointer itk_image, bool invert=false)
 
template<class T >
bool insert_itk_label_into_mask_layer (const LayerHandle &layer, typename itk::Image< T, 3 > *itk_image, T label)
 
template<class T >
bool insert_itk_label_pointer_into_mask_layer (const LayerHandle &layer, typename itk::Image< T, 3 >::Pointer itk_image, T label)
 
template<class T >
bool convert_and_insert_itk_image_into_layer (const LayerHandle &layer, typename itk::Image< T, 3 > *itk_image, Core::DataType data_type)
 
template<class T >
bool convert_and_insert_itk_image_pointer_into_layer (const LayerHandle &layer, typename itk::Image< T, 3 >::Pointer itk_image, Core::DataType data_type)
 
template<class T >
void forward_abort_to_filter (T filter_pointer, LayerHandle layer)
 
template<class T >
void observe_itk_progress (T filter_pointer, const LayerHandle &layer, float progress_start=0.0, float progress_amount=1.0)
 
template<class T >
void observe_itk_iterations (T filter_pointer, boost::function< void(itk::Object *) > iteration_fcn)
 
template<class T >
void limit_number_of_itk_threads (T filter_pointer)
 
virtual void handle_abort ()
 
virtual void handle_stop ()
 
- Protected Member Functions inherited from Seg3D::LayerFilter
virtual void run_filter ()=0
 
virtual void run ()
 

Member Function Documentation

virtual std::string Seg3D::IntensityCorrectionFilterAlgo::get_filter_name ( ) const
inlinevirtual

GET_FILTER_NAME: This functions returns the name of the filter that is used in the error report.

Implements Seg3D::LayerFilter.

virtual std::string Seg3D::IntensityCorrectionFilterAlgo::get_layer_prefix ( ) const
inlinevirtual

GET_LAYER_PREFIX: This function returns the name of the filter. The latter is prepended to the new layer name, when a new layer is generated.

Implements Seg3D::LayerFilter.

Member Data Documentation

Seg3D::IntensityCorrectionFilterAlgo::else
Initial value:
{
this->insert_itk_image_pointer_into_layer<float>( this->dst_layer_,
dg_image->get_image() )
TYPED_CONTAINER_TYPE::Handle Seg3D::IntensityCorrectionFilterAlgo::input_image
Initial value:
{
typedef itk::DiscreteGaussianImageFilter< TYPED_IMAGE_TYPE, FLOAT_IMAGE_TYPE > DGFilterType
Seg3D::IntensityCorrectionFilterAlgo::try
Initial value:
{
dgfilter->Update()

The documentation for this class was generated from the following file: