In file imagedata/RangeInrimage3D.h:

class RangeInrimage3D : public ImageData, public RangeInrimage, public RangeData3D

3D range inrimage

Inheritance:


Public Methods

virtual RangeInrimage::IMAGE_KIND display (IMAGE_KIND kind)
changes displayed inrimage
bool getClosestPoint (const Vec3 &position, const Vec3 &normal, const double range, Vec3 &closest, const RangeInformation *clientData) const
RangeData3D closest point computation callback
void getSpeed (const Vec3 &position, double &mul, double &add, const RangeInformation *clientData) const
compute level set speed as 1/|\nabla I| truncated function
virtual void updateImageDisplay (Inrimage *inr)
update image display (when the displayed image change)
TclRangeInrimage3D* getInterface (void) const
returns object interface

Public

constructors
RangeInrimage3D (Inrimage *inr, Scene3D *scene, Inrimage *gradient = 0, Inrimage *gradientdir = 0, Inrimage *edge = 0, Inrimage *gradient2 = 0, Inrimage *classify = 0, bool allCameras = false) throw(Inrimage::ImageNotFound, Inrimage::UnknownImageType, Inrimage::InvalidHeader, Inrimage::InvalidData, Inrimage::UnknownType)
builds a range inrimage from intensity image
RangeInrimage3D (const TclString& fileName, Scene3D *scene, bool allCameras = false) throw(Inrimage::ImageNotFound, Inrimage::UnknownImageType, Inrimage::InvalidHeader, Inrimage::InvalidData, Inrimage::UnknownType)
Builds a range inrimage from intensity image file name
destructor
virtual ~RangeInrimage3D ()
empty

Inherited from ImageData:

Public Classes

enum GRID_DISPLAY
HIDE
only slice frame
FRAME
only slice frame
GRID
pixels grid
VOXELS
voxels
enum SLICES_DISPLAY
NOSLICES
do not display slices
SOLID
polygons rendering
TEXTURE
texture rendering
VOLUME
volume rendering
enum BLENDING
OVER
flow of light through a transparent material
ATTENUATE
attenuate light shining through the material along the view direction (X-ray)
MIP
Maximum Intensity Projection
UNDER
OVER operator from back to front

Public Methods

unsigned int getX(void) const
unsigned int ncols(void) const
unsigned int getY(void) const
unsigned int nrows(void) const
unsigned int getZ(void) const
unsigned int nplanes(void) const
double getVX(void) const
double getVC(void) const
double getVY(void) const
double getVR(void) const
double getVZ(void) const
double getVP(void) const
virtual void redraw(Camera3D *)
virtual void updateCenter(Vec3& center, unsigned int& n)
virtual double updateRadius(const Vec3& center)
virtual double computeClosestDistance(DataTypes::MouseClick& mc) const
void getBoxColor(float &r, float &g, float &b) const
double getBoxWidth(void) const
void getGridColor(float &r, float &g, float &b) const
double getGridWidth(void) const
void setBoxColor(float r, float g, float b)
void setBoxWidth(double width)
void setGridColor(float r, float g, float b)
void setGridWidth(double width)
bool AreBlackPixelsShown() const
void setShowBlackPixels(const bool b)
GRID_DISPLAY getGridDisplay(void) const
void setGridDisplay(GRID_DISPLAY gd)
SLICES_DISPLAY getSlicesDisplay(void) const
void setSlicesDisplay(SLICES_DISPLAY sd)
unsigned int getResolution(void) const
void setResolution(unsigned int resolution)
void setBlending(bool blending, double alpha = 0.3333333333333)
void clearLists(void)
void clearGridLists(void)
void clearSliceLists(void)
unsigned int getNSlices(void) const
BLENDING getVolumeBlending(void) const
void setNSlices(unsigned int nslices)
void setVolumeBlending(ImageData::BLENDING blend)
void setVolumeTransparency(double *trs, float ot)
virtual void sliceCreation(SliceCameraBackground *b)
virtual void sliceDestruction(SliceCameraBackground *b)
virtual void sliceUpdate(SliceCameraBackground *b)
virtual void imageUpdate(const Inrimage *i)
virtual void imageDestroyed(const Inrimage *i)

Protected Classes

struct SliceInfo
SliceInfo(GLuint dl, GLuint dlg)
one slice display information constructor
~SliceInfo()
destroy slice and associated display lists
GLuint GLlist
slice display list (0 if none was computed)
GLuint GLgridlist
grid display list (0 if none was computed)

Protected Fields

Voxel* glmin
Voxel* glmax
Inrimage* image
float boxColor[3]
double boxWidth
float gridColor[3]
double gridWidth
bool showBlackPixels
bool allCameras
std::map SliceInfo *> sliceMap
bool showImage
GRID_DISPLAY gridDisplay
SLICES_DISPLAY slicesDisplay
unsigned int resolution
bool blending
double alpha
GLuint volumeList
BLENDING volumeBlending
unsigned int nslices
GLdouble clipPlaneEqn[6][4]
float* lookupTable
float textbg[4]
GLfloat textmap

Protected Methods

void init(void)
void setImage(Inrimage *inr)
void resetImage(Inrimage *inr)
GLuint volumeDisplayList()
GLuint sliceDisplayList(const SliceCameraBackground *b)
GLuint gridDisplayList(unsigned int slice, SliceCamera::SLICE_ORIENTATION geom) const
virtual void clearSlices(void)

Inherited from RangeInrimage:

Public Classes

class GradientForce: public VoxelMax, public Force
exception thrown when the associated RangeInrimage is not valid
exception
TclString name
the force name
RangeInrimage* range
the associated Range image
constructor
Force(RangeInrimage *range, TclString _name) throw(InvalidRangeInrimage)
builds a new force applying on a volumetric image
destructor
virtual ~Force()
empty
virtual bool isPossible() const
whether the force can be computed
virtual void getSpeed(const Vec3 &position, double &mult, double &add)
routines that computes a level set speed at a given point in image
TclString getName()
returns the name of the force
virtual void updateImage()
function called whenever an image of the pointed RangeImage is changed
ImageGeometry* converter
use this geometry converter to properly handle cylindrical images
GradientInrimageInformation* gi
gradient Inrimage Information
bool testVoxel(ImageVoxel *voxel)
returns true if voxel verify orientation and intensity constraints, false otherwise
constructor
GradientForce(RangeInrimage *range) throw(Force::InvalidRangeInrimage)
builds a gradient force given the gradient threshold, its orientation constraint and its intensity range
destructor
virtual ~GradientForce()
destroys any line voxel
void start(Voxel& voxel)
initializes the closest voxel
bool isPossible() const
whether this force can be used
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, GradientInrimageInformation *rii = 0)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
void updateImage(void)
set the image pointer to the updated gradient image
bool isPossible()
is it possible to use the force
bool stopFromGradient(ImageVoxel *v, Voxel& iv)
gradient force stop condition
class RegionForce: public VoxelMax, public Force
RegionInrimageInformation* ri
necessary information for computing matching point
void findRegion()
Finds the region boundary and store the boundary voxel in maxVoxel
void smoothProfile()
Smooth the image profile
constructor
RegionForce(RangeInrimage *range) throw(Force::InvalidRangeInrimage)
builds an edge force given the gradient threshold and its orientation constraint and its intensity range
destructor
virtual ~RegionForce()
destroys any line voxel
void start(Voxel& voxel)
initializes the closest voxel
bool isPossible() const
whether this force can be used
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, RegionInrimageInformation *rii = 0)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
void updateImage(void)
set the image pointer to the updated gradient image
bool stopFromRegion(ImageVoxel *v, Voxel& iv)
edge force stop condition
class GradientGradientForce: public Force
constructor
GradientGradientForce(RangeInrimage *_range) throw(Force::InvalidRangeInrimage)
builds a GradientGradient force
destructor
virtual ~GradientGradientForce()
destroys any line voxel
bool isPossible() const
whether this force can be computed
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, GradientGradientInrimageInformation *rii = 0)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
class GradientBalloonForce: public Force
constructor
GradientBalloonForce(RangeInrimage *_range) throw(Force::InvalidRangeInrimage)
builds a GradientGradient force
bool isPossible() const
whether this force can be computed
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, GradientBalloonInrimageInformation *rii = 0)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
virtual void getSpeed(const Vec3 &position, double &mult, double &add, GradientBalloonInrimageInformation *rii)
compute level set speed as 1/|\nabla I| truncated function
destructor
virtual ~GradientBalloonForce()
destroys any line voxel
class IntensityProfileForce: public ImageLine, public Force
constructor
IntensityProfileForce(RangeInrimage *range) throw(Force::InvalidRangeInrimage)
builds a profile force
destructor
virtual ~IntensityProfileForce()
destroys any line voxel
virtual bool isPossible() const
whether the force can be computed
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, IntensityProfileInformation *rii)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
class ClassForce: public ImageLine, public Force
ClassInrimageInformation* ri
necessary information for computing matching point
constructor
ClassForce(RangeInrimage *range, double forceRange = 10.0) throw(Force::InvalidRangeInrimage)
builds a class force
destructor
virtual ~ClassForce()
destroys any line voxel
virtual bool isPossible() const
whether the force can be computed
bool getPoint(const Vec3 &position, const Vec3 &direction, double range, Vec3 &point, ClassInrimageInformation *rii)
routines that computes a point in a volumetric image lying on a 3D line defined by (position, direction) and that that best matches a given criterion
void updateImage(void)
set the image pointer on the updated classify image
enum ForceGeometry
enum IMAGE_KIND
NONE
none
INTENSITY
intensity image
GRADIENT
gradient image
GRADIENT_DIRECTION
gradient direction image
GRADIENT_GRADIENT
gradient direction image
EDGE
edge image
CLASSIFY
classify image

Public Methods

void initForces()
unsigned int getDirectionArraySize()
void setIntensity(Inrimage *inr) throw(RangeInrimage::InvalidSize)
void setGradient(Inrimage *inr) throw(RangeInrimage::InvalidSize)
void setGradientDirection(Inrimage *inr) throw(RangeInrimage::InvalidSize)
void setEdge(Inrimage *inr) throw(RangeInrimage::InvalidSize)
void setGradientGradient(Inrimage *inr) throw(RangeInrimage::InvalidSize)
void setClassify(Inrimage *inr) throw(RangeInrimage::InvalidSize)
Inrimage* getIntensity(void) const
Inrimage* getGradient(void) const
Inrimage* getGradientDirection(void) const
Inrimage* getEdge(void) const
Inrimage* getGradientGradient(void) const
Inrimage* getClassify(void) const
const Vec3 * getSampledDirection(void) const
void computeSobelGradient(unsigned int sigma=3, bool twoD=false, bool maximum=false, double lt=0.0)
void computeRecursiveGradient(yav::RECURSIVE_FILTER_TYPE filter=yav::DERICHE_STEP_EDGE, double sigma=3.0, bool twoD=false, bool maximum=false, double lt=0.0)
void computeSobelGradientGradient(unsigned int sigma=3, bool twoD=false)
void computeRecursiveGradientGradient(yav::RECURSIVE_FILTER_TYPE filter=yav::DERICHE_STEP_EDGE, double sigma=3.0, bool twoD=false)
IMAGE_KIND getImageDisplay(void) const
Inrimage* getDisplayedImage() const

Public

exception

constructor

RangeInrimage(const TclString& filename, Inrimage *intensity = 0) throw(Inrimage::ImageNotFound, Inrimage::UnknownImageType, Inrimage::InvalidHeader, Inrimage::InvalidData, Inrimage::UnknownType)
Builds a RangeInrimage given the intensity image and its name
RangeInrimage(Inrimage *intensity = 0, Inrimage *gradient = 0, Inrimage *gradientDirection = 0, Inrimage *edge = 0, Inrimage *gradientGradient = 0, Inrimage *classify = 0, ForceGeometry _forceGeometry = FORCE_3D)
build a RangeInrimage given the list of images

Protected Fields

ObjectPointer intensity
ObjectPointer gradient
ObjectPointer gradientDirection
ObjectPointer edge
ObjectPointer gradientGradient
ObjectPointer classify
Vec3 * sampledDirection
unsigned int sizeX
unsigned int sizeY
unsigned int sizeZ
ObjectsList forceList
ForceGeometry forceGeometry
GradientForce* gradientForce
RegionForce* regionForce
GradientGradientForce* gradientGradientForce
GradientBalloonForce* gradientBalloonForce
IntensityProfileForce* intensityProfileForce
ClassForce* classForce
IMAGE_KIND imageDisplay

Protected Methods

virtual void dying(const ObjectPointer& obj)
void setSize(Inrimage *im)
void testSize(Inrimage *im) const throw(InvalidSize)
void gradientFile(const TclString& fileName, TclString& gradientName) const
void gradientDirectionFile(const TclString& fileName, TclString& gradientDirectionName) const
void gradientGradientFile(const TclString& fileName, TclString& gradientGradientName) const
void classifyFile(const TclString& fileName, TclString& classifyName) const
void updateForceImages()

Documentation

3D range inrimage
constructors

RangeInrimage3D(Inrimage *inr, Scene3D *scene, Inrimage *gradient = 0, Inrimage *gradientdir = 0, Inrimage *edge = 0, Inrimage *gradient2 = 0, Inrimage *classify = 0, bool allCameras = false) throw(Inrimage::ImageNotFound, Inrimage::UnknownImageType, Inrimage::InvalidHeader, Inrimage::InvalidData, Inrimage::UnknownType)
builds a range inrimage from intensity image
Parameters:
inr - intensity inrimage
scene - scene to create range image in
gradient - gradient image
gradientdir - gradient direction image
edge - edge image
gradient2 - gradient derivative image
classify - classified image
allCameras - ImageData allCameras flag

RangeInrimage3D(const TclString& fileName, Scene3D *scene, bool allCameras = false) throw(Inrimage::ImageNotFound, Inrimage::UnknownImageType, Inrimage::InvalidHeader, Inrimage::InvalidData, Inrimage::UnknownType)
Builds a range inrimage from intensity image file name. Given file name is used as intensity image. If name.inr.gz is given, name.gradient and name.gradient.gz are used for gradient image candidates, and name.gradient_direction and name.gradient_direction.gz are used for gradient direction image candidate.
Parameters:
fileName - intensity image file name
scene - scene to create range image in
allCameras - ImageData allCameras flag

destructor

virtual ~RangeInrimage3D()
empty

virtual RangeInrimage::IMAGE_KIND display(IMAGE_KIND kind)
changes displayed inrimage
Parameters:
kind - image kind to display

bool getClosestPoint(const Vec3 &position, const Vec3 &normal, const double range, Vec3 &closest, const RangeInformation *clientData) const
RangeData3D closest point computation callback
Returns:
true if some data point was found, false otherwise
Parameters:
position - vertex position
normal - vertex normal
range - search range
closest - returned closest data point found
clientData - vertex local information

void getSpeed(const Vec3 &position, double &mul, double &add, const RangeInformation *clientData) const
compute level set speed as 1/|\nabla I| truncated function
Parameters:
position - the position of a 3D point in the image
mult - returned multiplicative speed term
add - returned additive speed term
clientData - vertex local information

virtual void updateImageDisplay(Inrimage *inr)
update image display (when the displayed image change)
Parameters:
inr - new displayed image

TclRangeInrimage3D* getInterface(void) const
returns object interface


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de