PlusLib  2.9.0
Software library for tracked ultrasound image acquisition, calibration, and processing.
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkPlusForoughiBoneSurfaceProbability Class Reference

This class computes bone surface probability by dynamic programming. More...

#include <src/PlusImageProcessing/vtkPlusForoughiBoneSurfaceProbability.h>

Inheritance diagram for vtkPlusForoughiBoneSurfaceProbability:
Inheritance graph
[legend]
Collaboration diagram for vtkPlusForoughiBoneSurfaceProbability:
Collaboration graph
[legend]

Public Types

typedef vtkSimpleImageToImageFilter Superclass
 

Public Member Functions

virtual int GetBlurredVSBLoG ()
 
virtual double GetBoneThreshold ()
 
virtual const char * GetClassName ()
 
virtual double GetShadowSigma ()
 
virtual int GetShadowVSIntensity ()
 
virtual double GetSmoothingSigma ()
 
virtual int GetTransducerMargin ()
 
virtual int IsA (const char *type)
 
virtual void SetBlurredVSBLoG (int)
 
virtual void SetBoneThreshold (double)
 
virtual void SetShadowSigma (double)
 
virtual void SetShadowVSIntensity (int)
 
virtual void SetSmoothingSigma (double)
 
virtual void SetTransducerMargin (int)
 

Static Public Member Functions

static int IsTypeOf (const char *type)
 
static vtkPlusForoughiBoneSurfaceProbabilityNew ()
 
static vtkPlusForoughiBoneSurfaceProbabilitySafeDownCast (vtkObject *o)
 

Protected Member Functions

void Conv2 (const double *inputBuffer, const double *kernelBuffer, double *tempBuffer, double *outputBuffer, int nx, int ny, int kx, int ky)
 
void DeleteKernels ()
 
void Foroughi2007 (double *inputBuffer, double *outputBuffer, double smoothingSigma, int transducerMargin, double shadowSigma, double boneThreshold, int blurredVSBLoG, int shadowVSIntensity, int nx, int ny, int nz)
 
double GetMaxPixelValue (const double *buffer, int size)
 
void Normalize (double *buffer, int size, bool doInverse, double maxValue=1.0)
 
void ResizeMatrix (const double *inputBuffer, double *outputBuffer, int xClipping, int yClipping, int xInputSize, int yInputSize)
 
virtual void SimpleExecute (vtkImageData *input, vtkImageData *output)
 
void UpdateKernels ()
 
 vtkPlusForoughiBoneSurfaceProbability ()
 
virtual ~vtkPlusForoughiBoneSurfaceProbability ()
 

Protected Attributes

int BlurredVSBLoG
 
double BoneThreshold
 
FrameSizeType FrameSize
 
int GaussianKernelSize
 
bool KernelUpdateRequested
 
double * MklGaussianBuffer
 
double * MklGaussianBufferTemp
 
double * MklGaussianKernel
 
double * MklLaplacianKernel
 
double * MklLaplacianOfGaussianBuffer
 
double * MklLaplacianOfGaussianBufferTemp
 
double * MklReflectionNumberBuffer
 
double * MklShadowModel
 
double * MklShadowValueBuffer
 
double ShadowSigma
 
int ShadowVSIntensity
 
double SmoothingSigma
 
int TransducerMargin
 

Detailed Description

This class computes bone surface probability by dynamic programming.

The filter computes bone surface probability (BSP) by the dynamic programming as proposed by Foroughi et al.

Foroughi, P., et al. (2007) Ultrasound bone segmentation using dynamic programming. IEEE Ultrason Symp 13(4):2523–2526.

Implemented (with some modifications) by Mikael Brudfors, March 2014.

The Intel MKL code uses double data at this moment, therefore input and output must be double scalar type image.

The module uses OpenMP and Intel MKL. A free trial of Intel MKL can be downloaded from here:

https://software.intel.com/en-us/intel-mkl/try-buy

Definition at line 35 of file vtkPlusForoughiBoneSurfaceProbability.h.

Member Typedef Documentation

◆ Superclass

typedef vtkSimpleImageToImageFilter vtkPlusForoughiBoneSurfaceProbability::Superclass

Definition at line 39 of file vtkPlusForoughiBoneSurfaceProbability.h.

Constructor & Destructor Documentation

◆ vtkPlusForoughiBoneSurfaceProbability()

vtkPlusForoughiBoneSurfaceProbability::vtkPlusForoughiBoneSurfaceProbability ( )
protected

Definition at line 39 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ ~vtkPlusForoughiBoneSurfaceProbability()

vtkPlusForoughiBoneSurfaceProbability::~vtkPlusForoughiBoneSurfaceProbability ( )
protectedvirtual

Definition at line 67 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

Member Function Documentation

◆ Conv2()

void vtkPlusForoughiBoneSurfaceProbability::Conv2 ( const double *  inputBuffer,
const double *  kernelBuffer,
double *  tempBuffer,
double *  outputBuffer,
int  nx,
int  ny,
int  kx,
int  ky 
)
protected

Definition at line 283 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ DeleteKernels()

void vtkPlusForoughiBoneSurfaceProbability::DeleteKernels ( )
protected

Definition at line 267 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ Foroughi2007()

void vtkPlusForoughiBoneSurfaceProbability::Foroughi2007 ( double *  inputBuffer,
double *  outputBuffer,
double  smoothingSigma,
int  transducerMargin,
double  shadowSigma,
double  boneThreshold,
int  blurredVSBLoG,
int  shadowVSIntensity,
int  nx,
int  ny,
int  nz 
)
protected

◆ GetBlurredVSBLoG()

virtual int vtkPlusForoughiBoneSurfaceProbability::GetBlurredVSBLoG ( )
virtual

◆ GetBoneThreshold()

virtual double vtkPlusForoughiBoneSurfaceProbability::GetBoneThreshold ( )
virtual

◆ GetClassName()

virtual const char* vtkPlusForoughiBoneSurfaceProbability::GetClassName ( )
virtual

◆ GetMaxPixelValue()

double vtkPlusForoughiBoneSurfaceProbability::GetMaxPixelValue ( const double *  buffer,
int  size 
)
protected

Definition at line 325 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ GetShadowSigma()

virtual double vtkPlusForoughiBoneSurfaceProbability::GetShadowSigma ( )
virtual

◆ GetShadowVSIntensity()

virtual int vtkPlusForoughiBoneSurfaceProbability::GetShadowVSIntensity ( )
virtual

◆ GetSmoothingSigma()

virtual double vtkPlusForoughiBoneSurfaceProbability::GetSmoothingSigma ( )
virtual

◆ GetTransducerMargin()

virtual int vtkPlusForoughiBoneSurfaceProbability::GetTransducerMargin ( )
virtual

◆ IsA()

virtual int vtkPlusForoughiBoneSurfaceProbability::IsA ( const char *  type)
virtual

◆ IsTypeOf()

static int vtkPlusForoughiBoneSurfaceProbability::IsTypeOf ( const char *  type)
static

◆ New()

static vtkPlusForoughiBoneSurfaceProbability* vtkPlusForoughiBoneSurfaceProbability::New ( )
static

◆ Normalize()

void vtkPlusForoughiBoneSurfaceProbability::Normalize ( double *  buffer,
int  size,
bool  doInverse,
double  maxValue = 1.0 
)
protected

Definition at line 339 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ ResizeMatrix()

void vtkPlusForoughiBoneSurfaceProbability::ResizeMatrix ( const double *  inputBuffer,
double *  outputBuffer,
int  xClipping,
int  yClipping,
int  xInputSize,
int  yInputSize 
)
protected

Definition at line 303 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ SafeDownCast()

static vtkPlusForoughiBoneSurfaceProbability* vtkPlusForoughiBoneSurfaceProbability::SafeDownCast ( vtkObject *  o)
static

◆ SetBlurredVSBLoG()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetBlurredVSBLoG ( int  )
virtual

Controls the ratio between the Gaussian blurring and the Laplacian of Gaussian.

◆ SetBoneThreshold()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetBoneThreshold ( double  )
virtual

Defines the probability threshold for a pixel to be considered bone or not.

◆ SetShadowSigma()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetShadowSigma ( double  )
virtual

Standard deviation of the Gaussian weighting function which models the transition of high intensity pixels close to bone surface to the dark pixels deeper under the bone.

◆ SetShadowVSIntensity()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetShadowVSIntensity ( int  )
virtual

◆ SetSmoothingSigma()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetSmoothingSigma ( double  )
virtual

Defines the size of the Gaussian kernel used for blurring.

◆ SetTransducerMargin()

virtual void vtkPlusForoughiBoneSurfaceProbability::SetTransducerMargin ( int  )
virtual

Defines the number of rows to exclude from the top part of the image (close to the transducer head).

◆ SimpleExecute()

void vtkPlusForoughiBoneSurfaceProbability::SimpleExecute ( vtkImageData *  input,
vtkImageData *  output 
)
protectedvirtual

Definition at line 74 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

◆ UpdateKernels()

void vtkPlusForoughiBoneSurfaceProbability::UpdateKernels ( )
protected

Definition at line 212 of file vtkPlusForoughiBoneSurfaceProbability.cxx.

Member Data Documentation

◆ BlurredVSBLoG

int vtkPlusForoughiBoneSurfaceProbability::BlurredVSBLoG
protected

Definition at line 80 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ BoneThreshold

double vtkPlusForoughiBoneSurfaceProbability::BoneThreshold
protected

Definition at line 81 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ FrameSize

FrameSizeType vtkPlusForoughiBoneSurfaceProbability::FrameSize
protected

Definition at line 90 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ GaussianKernelSize

int vtkPlusForoughiBoneSurfaceProbability::GaussianKernelSize
protected

Definition at line 89 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ KernelUpdateRequested

bool vtkPlusForoughiBoneSurfaceProbability::KernelUpdateRequested
protected

Definition at line 87 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklGaussianBuffer

double* vtkPlusForoughiBoneSurfaceProbability::MklGaussianBuffer
protected

Definition at line 92 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklGaussianBufferTemp

double* vtkPlusForoughiBoneSurfaceProbability::MklGaussianBufferTemp
protected

Definition at line 94 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklGaussianKernel

double* vtkPlusForoughiBoneSurfaceProbability::MklGaussianKernel
protected

Definition at line 99 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklLaplacianKernel

double* vtkPlusForoughiBoneSurfaceProbability::MklLaplacianKernel
protected

Definition at line 100 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklLaplacianOfGaussianBuffer

double* vtkPlusForoughiBoneSurfaceProbability::MklLaplacianOfGaussianBuffer
protected

Definition at line 93 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklLaplacianOfGaussianBufferTemp

double* vtkPlusForoughiBoneSurfaceProbability::MklLaplacianOfGaussianBufferTemp
protected

Definition at line 95 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklReflectionNumberBuffer

double* vtkPlusForoughiBoneSurfaceProbability::MklReflectionNumberBuffer
protected

Definition at line 96 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklShadowModel

double* vtkPlusForoughiBoneSurfaceProbability::MklShadowModel
protected

Definition at line 98 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ MklShadowValueBuffer

double* vtkPlusForoughiBoneSurfaceProbability::MklShadowValueBuffer
protected

Definition at line 97 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ ShadowSigma

double vtkPlusForoughiBoneSurfaceProbability::ShadowSigma
protected

Definition at line 82 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ ShadowVSIntensity

int vtkPlusForoughiBoneSurfaceProbability::ShadowVSIntensity
protected

Definition at line 83 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ SmoothingSigma

double vtkPlusForoughiBoneSurfaceProbability::SmoothingSigma
protected

Definition at line 84 of file vtkPlusForoughiBoneSurfaceProbability.h.

◆ TransducerMargin

int vtkPlusForoughiBoneSurfaceProbability::TransducerMargin
protected

Definition at line 85 of file vtkPlusForoughiBoneSurfaceProbability.h.


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