Woolz Image Processing  Version 1.7.5
WlzTensor.c File Reference

Functions which derive and manipulate tensor quantities. More...

Functions

WlzObjectWlzDGTensorFeatures (WlzObject *mObj, unsigned int features, int points, double dMin, WlzDVertex3 dither, WlzDVertex3 smooth, int voxScaling, WlzErrorNum *dstErr)
 Computes features of a deformation gradient tensor field and creates a compound object, each element of which is a required feature of the given deformation gradient field object. The feature object may be either a points object or a spatial domain object as required. See WlzDGTensorSDFeature() which this function calls to compute the feature objects. More...
 
WlzObjectWlzDGTensorSDFeature (WlzObject *mObj, WlzDomain fDom, WlzDGTensorFeatureType feat, WlzDVertex3 smooth, WlzErrorNum *dstErr)
 Computes a feature of a deformation gradient tensor field throughout the given 3D spatial domain. This function assumes all input parameters to be valid, when this is not certain use WlzDGTensorFeatures(). The returned object will have it's name property set to an appropriate name for the required feature: WLZ_DGTENSOR_FEATURE_DETJAC ("jacobian"), WLZ_DGTENSOR_FEATURE_EIGENVEC ("eigen vectors") or WLZ_DGTENSOR_FEATURE_EIGENVAL ("eigen values"). More...
 
WlzObjectWlzDGTensorPDFeature (WlzObject *mObj, WlzDomain fDom, WlzDGTensorFeatureType feat, WlzErrorNum *dstErr)
 Computes a feature of a deformation gradient tensor field throughout the given 3D points domain. This function assumes all input parameters to be valid, when this is not certain use WlzDGTensorFeatures(). More...
 
WlzErrorNum WlzTensorSmooth (WlzObject *obj, WlzDVertex3 smooth)
 Smooths the (possibly) non-scalar features of the given object in place by applying a Gaussian filter with the given sigma values (sigma value <~ 0.0 implies no filtering in the corresponding direction. More...
 
WlzObjectWlzTensorGetComponent (WlzObject *tObj, int cpt, WlzErrorNum *dstErr)
 Extracts a single value component from a (possibly) non-scalar object and creates an object with a non-tiled value table which is returned. This function may also be used to convert a tiled value object to a non-tiled value object. More...
 
WlzErrorNum WlzTensorSetComponent (WlzObject *tObj, WlzObject *fObj, int cpt)
 Sets a single value component in a (possibly) non-scalar object using scalar values of the second given object. More...
 
WlzObjectWlzCMeshDGTensor (WlzObject *cObj, int invert, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor for each of it's valid elements. Given displacement \(\vec{u}(\vec{r})\) with position vector \(\vec{r}\) which maps a point from a space \(\vec{x}\) to a space \(\vec{u}\) the displacement gradient tensor is defined in 3D as

\[ { \newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}} u_{i,j} = \left [ \begin{array}{ccc} \pd{u_0}{x_0} & \pd{u_0}{x_1} & \pd{u_0}{x_2} \\ \pd{u_1}{x_0} & \pd{u_1}{x_1} & \pd{u_1}{x_2} \\ \pd{u_2}{x_0} & \pd{u_2}{x_1} & \pd{u_2}{x_2} \end{array} \right] } \]

with

\[ \Delta r_i = u_{ij} r_j \]

where \(\vec{u} = \left[u_0, u_1, u_2\right]^T\) and \(\Delta \vec{r} = \left[x_0, x_1, x_2\right]^T\). The displacement gradient tensor matrix is just the rotation and independent scaling part of the affine transform that displaces the element. More...

 
WlzObjectWlzCMeshDGTensorAtPts (WlzObject *cObj, int invert, WlzDVertex3 sd, int dither, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor at regular cartesian grid sample points throughout the mesh. The tensor values at the sample points are computed at each point by computing an iverse distance weighted least squares general affine transform for the ring of nodes surrounding the closest node. See WlzCMeshDGTensor() for the description of the tensor. More...
 
WlzObjectWlzCMeshStrainTensor (WlzObject *cObj, int invert, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the strain tensor for each of it's valid elements. This function uses WlzCMeshDGTensor() to compute the displacement gradient tensor and the derives the strain tensor \(e_{ij}\) from this using:

\[ e_{ij} = \frac{1}{2} (u_{ij} + u_{ji}) \]

. More...

 
WlzObjectWlzCMeshStrainTensorAtPts (WlzObject *cObj, int invert, WlzDVertex3 sd, int dither, WlzErrorNum *dstErr)
 Given a conforming mesh transform this function computes the displacement gradient tensor at regular cartesian grid sample points throughout the mesh. The tensor values at the sample points are computed using WlzCMeshDGTensorAtPts(). The strain tensor is then computed from the displacement gradient tensor as for WlzCMeshStrainTensor(). More...
 

Detailed Description

Functions which derive and manipulate tensor quantities.

Author
Bill Hill
Date
January 2013
Version
Id
65edb06e1d53ac8f3c9ad1b863be58bcf138ebf6
Address: MRC Human Genetics Unit, MRC Institute of Genetics and Molecular Medicine, University of Edinburgh, Western General Hospital, Edinburgh, EH4 2XU, UK.
Copyright (C), [2013], The University Court of the University of Edinburgh, Old College, Edinburgh, UK.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.