Woolz Image Processing  Version 1.8.3
WlzValuesUtils

Files

file  WlzBackground.c
 Functions to get and set the background value of objects.
 
file  WlzConvertPix.c
 Conversion of values.
 
file  WlzCutObjToBox.c
 Functions for creating new domain objects with rectangular value tables.
 
file  WlzGreyDitherObj.c
 Makes a dithered object from the given grey-level object.
 
file  WlzGreyInvertMinMax.c
 Grey value inversion.
 
file  WlzGreyMask.c
 Functions to set the value within the domain of a object.
 
file  WlzGreyModGradient.c
 Functions to calculate the modulus of the grey-level gradient of Woolz objects.
 
file  WlzGreyScan.c
 Object grey value scanning functions.
 
file  WlzGreySetHilbert.c
 Functions for creating objects with integral grey values that are related to their Hilbert indices.
 
file  WlzGreySetIncValues.c
 Functions for creating objects with integer grey values that increment.
 
file  WlzGreySetValue.c
 Sets the grey values of objects.
 
file  WlzGreyTemplate.c
 Attach a grey table to a template object.
 
file  WlzGreyTransfer.c
 Transfers grey values from a source to a destination object. The source object grey values are set in the intersection domain between source and destination. Destination domain and the destination values outside of the intersection are unchanged.
 
file  WlzKrig.c
 Functions for interpolation based on kriging.
 
file  WlzRGBAConvert.c
 Conversion routines for RGBA data including conversion to modulus.
 
file  WlzRGBAModGradient.c
 Calculates the modulus of the gradient of a RGBA object. The gradient is defined as the modulus of the "modulus" vector, i.e. the modulus for each colour.
 
file  WlzRGBAPixelUtils.c
 Utility functions for pixel and RGBA values.
 
file  WlzRGBARange.c
 Finds the range of values in a RGBA type image.
 
file  WlzValueTableUtils.c
 Functions for computing value amd value table types.
 
file  WlzValueUtils.c
 Many small functions for setting, copying and converting values.
 

Functions

WlzErrorNum WlzSetBackground (WlzObject *obj, WlzPixelV bgd)
 Sets the backgound value of an image object. More...
 
WlzPixelV WlzGetBackground (WlzObject *obj, WlzErrorNum *dstErr)
 Gets the background value of the given object. More...
 
WlzObjectWlzSetBackGroundNewObj (WlzObject *gObj, WlzPixelV bgdV, WlzErrorNum *dstErr)
 Creates a new Woolz object in which the background value is as given. The given object must be either a 2D or 3D domain object with a valid domain, however it's values can be NULL. If the values are NULL then a new value table is created with the same grey type as the given background value, or if non-NULL then a new value table is created while sharing the values of the original object's value table when this is possible. The given object remains unchanged apart from linkcounts. More...
 
WlzObjectWlzConvertPix (WlzObject *obj, WlzGreyType newpixtype, WlzErrorNum *dstErr)
 Converts the pixel type of the image object, creating a new object with the same domain as the given object. More...
 
WlzPolygonDomainWlzConvertPolyType (WlzPolygonDomain *pdom, WlzObjectType type, WlzErrorNum *dstErr)
 Converts a polygon domain type. More...
 
WlzBoundListWlzConvertBoundType (WlzBoundList *bound, WlzObjectType type, WlzErrorNum *dstErr)
 Converts a boundary list to the required type. More...
 
WlzObjectWlzConvertVtx (WlzObject *obj, WlzVertexType newVtxType, WlzErrorNum *dstErr)
 Converts the vertices of an object to the required type. More...
 
WlzObjectWlzCutObjToBox2D (WlzObject *sObj, WlzIBox2 cutBox, WlzGreyType dGreyType, int bgNoise, double bgMu, double bgSigma, WlzErrorNum *dstErrNum)
 Cuts a new object with a rectangular value table from the given woolz object. More...
 
WlzObjectWlzCutObjToValBox2D (WlzObject *sObj, WlzIBox2 cutBox, WlzGreyType dGreyType, void *gValP, int bgNoise, double bgMu, double bgSigma, WlzErrorNum *dstErrNum)
 Cuts a new object with a rectangular value table from the given woolz object and allows access to grey table. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored. More...
 
WlzObjectWlzCutObjToBox3D (WlzObject *sObj, WlzIBox3 cutBox, WlzGreyType dGreyType, int bgNoise, double bgMu, double bgSigma, WlzErrorNum *dstErrNum)
 Cuts a new object with (a) rectangular value table(s) from the given woolz object. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored. More...
 
WlzObjectWlzCutObjToValBox3D (WlzObject *sObj, WlzIBox3 cutBox, WlzGreyType dGreyType, void *gValP, int bgNoise, double bgMu, double bgSigma, WlzErrorNum *dstErrNum)
 Cuts a new object with (a) rectangular value table(s) from the given woolz object. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored. More...
 
WlzObjectWlzGreyDitherObj (WlzObject *o, unsigned int destBits, WlzErrorNum *dstErr)
 Makes a dithered object from the given grey-level Woolz object. The destination bits are determined by the number of shades in the dithered image (usually 1 bit) and the bit planes to use (typically to match the bit-planes of a display mask). More...
 
WlzErrorNum WlzGreyInvertMinMax (WlzObject *obj, WlzPixelV min, WlzPixelV max)
 Invert the Grey values of an object within a given
range. The supplied min and max values define the grey
transformation by:

\[ g' = g_{max} + g_{min} - g \]

which means that g=gmax gives g'=gmin and g=gmin gives
g'=gmax. This is a generalisation of the original invert and allows for the "normal" inversion of 255-g for byte images. The user must ensure the grey-value type of the given object can hold the result e.g. if the result is
negative. Note it is assumed that min and max have
a grey type which can be converted to the grey-type
of the given image. More...

 
WlzObjectWlzGreyMask (WlzObject *obj, WlzObject *mask, WlzPixelV maskVal, WlzErrorNum *dstErr)
 Set the value maskVal within the domain given by the
mask object. The mask object can be a 2D, 3D, polygon
or boundary object. A 3D mask with a 2D object is an
error. A 2D mask with a 3D object will be applied to
each plane in turn. More...
 
WlzObjectWlzGreyModGradient (WlzObject *obj, double width, WlzErrorNum *dstErr)
 Calculate the modulus of the grey-level gradient at each point. The gradient images are calculated using WlzGauss2() with width parameter set to width. Will now calculate the modulus for each object of a compound object if appropriate. More...
 
WlzErrorNum WlzInitGreyScan (WlzObject *obj, WlzIntervalWSpace *iwsp, WlzGreyWSpace *gwsp)
 Initialise interval and grey scanning of standard object in standard direction. More...
 
WlzErrorNum WlzEndGreyScan (WlzIntervalWSpace *iwsp, WlzGreyWSpace *gwsp)
 This must be called when a grey workspace is no longer required as it frees resources of the workspace. More...
 
WlzErrorNum WlzInitGreyRasterScan (WlzObject *obj, WlzIntervalWSpace *iwsp, WlzGreyWSpace *gwsp, WlzRasterDir raster, int tranpl)
 As WlzInitGreyScan(), but with choice of raster direction and transplanting,. More...
 
WlzErrorNum WlzInitGreyWSpace (WlzObject *obj, WlzIntervalWSpace *iwsp, WlzGreyWSpace *gwsp, int tranpl)
 Attach grey workspace to interval scanning workspace. More...
 
WlzErrorNum WlzNextGreyInterval (WlzIntervalWSpace *iwsp)
 Obtain next interval and its grey table. More...
 
WlzErrorNum WlzGreyInterval (WlzIntervalWSpace *iwsp)
 Handle grey table for an interval. This must follow a call to WlzNextInterval(). More...
 
WlzObjectWlzGreyNewHilbertRankValues (WlzObject *in, WlzErrorNum *dstErr)
 Creates a new domain object with integer values that increment throughout the object in Hilbert rank order. The input object's domain is used in the output object. Output object values start from 1. More...
 
WlzErrorNum WlzGreySetHilbertRankValues (WlzObject *obj, unsigned int *rVal)
 Sets the values of domain object with int values so that they increment throughout the object in Hilbert rank order. More...
 
WlzObjectWlzGreyNewIncValues (WlzObject *in, WlzErrorNum *dstErr)
 Creates a new domain object with integer values that increment throughout the object in scan order. Object values start from 1. More...
 
WlzErrorNum WlzGreySetIncValues (WlzObject *obj, int *gVal)
 Sets the values of a 2 or 3D domain object with int values so that they increment throughout the object in scan order. Object values are set by incrementing the given value in place. The given object must have WLZ_GREY_INT values. More...
 
WlzErrorNum WlzGreySetValue (WlzObject *obj, WlzPixelV val)
 Set the grey value of every pixel/voxel to the given value. More...
 
WlzObjectWlzGreyTemplate (WlzObject *obj, WlzObject *tmpl, WlzPixelV tmplVal, WlzErrorNum *dstErr)
 
WlzObjectWlzGreyTransfer (WlzObject *dObj, WlzObject *sObj, int inplace, WlzErrorNum *dstErr)
 Transfers grey values from the source object to the destination object within the intersection of the source and destination. Grey values within the destination object outside of the source object are unchanged. It is an error if either object has a different dimension or grey value type, except for when either is an empty object. More...
 
void WlzGreyValueGetDir (WlzGreyValueWSpace *gVWSp, int plane, int line, int kol)
 Gets a single grey value/pointer for the given point from the 3D values and domain in the work space. More...
 
void WlzKrigSetModelFn (WlzKrigModelFn *fn, WlzKrigModelFnType type, double c0, double c1, double a)
 Sets a kriging function data stuctures parameters and function pointer. See the kriging model function types and their implementation for the meaning of the parameters. More...
 
double WlzKrigModelFnLinear (WlzKrigModelFn *f, double h)
 A linear kriging variance model.

\[ \left\{ \begin{array}{ll} h < a & \gamma(h) = c_0 + \frac{(c_1 - c_0)}{a} h \\ h \geq a & \gamma(h) = c_1 \end{array} \right. \]

. More...

 
double WlzKrigModelFnSpherical (WlzKrigModelFn *f, double h)
 A spherical kriging variance model.

\[ \left\{ \begin{array}{ll} 0 < h \leq a & \gamma(h) = c_0 + c_1 \frac{1}{2} (\frac{3h}{a} - \frac{h^3}{a^3}) \\ h > a & \gamma(h) = c_0 + c_1 \end{array} \right. \]

. More...

 
double WlzKrigModelFnExponential (WlzKrigModelFn *f, double h)
 An exponential kriging variance model.

\[ \gamma(h) = c_0 + c_1(1 - e^{-\frac{h}{a}}) \]

. More...

 
double WlzKrigModelFnGaussian (WlzKrigModelFn *f, double h)
 A Gaussian kriging variance model.

\[ \gamma(h) = c_0 + c_1(1 - e^{-(\frac{h}{a})^2}) \]

. More...

 
double WlzKrigModelFnQuadratic (WlzKrigModelFn *f, double h)
 A Quadratic kriging variance model.

\[ \gamma(h) = c_0 + c_1 \left( \frac{ (\frac{h}{a})^2} {1 + (\frac{h}{a})^2} \right) \]

. More...

 
WlzErrorNum WlzKrigOSetModelSV2D (AlgMatrix modelSV, WlzKrigModelFn *modelFn, int n, WlzDVertex2 *nbr, int *wSp)
 Computes the ordinary kriging model semi-variogram from the given neighbourhood vertices. More...
 
WlzErrorNum WlzKrigOSetModelSV3D (AlgMatrix modelSV, WlzKrigModelFn *modelFn, int n, WlzDVertex3 *nbr, int *wSp)
 Computes the ordinary kriging model semi-variogram from the given neighbourhood vertices. More...
 
WlzErrorNum WlzKrigOSetPosSV2D (double *posSV, WlzKrigModelFn *modelFn, int n, WlzDVertex2 *nbr, WlzDVertex2 pos)
 Computes the ordinary kriging position semi-variogram from the given neighbourhood vertices and the given position vertex. More...
 
WlzErrorNum WlzKrigOSetPosSV3D (double *posSV, WlzKrigModelFn *modelFn, int n, WlzDVertex3 *nbr, WlzDVertex3 pos)
 Computes the ordinary kriging position semi-variogram from the given neighbourhood vertices and the given position vertex. More...
 
WlzErrorNum WlzKrigOWeightsSolve (AlgMatrix modelSV, double *posSV, int *wSp, double eps)
 Computes the ordinary kriging weights from the model and position semi-variograms. More...
 
WlzErrorNum WlzKrigReallocBuffers2D (WlzDVertex2 **dstNbrPosBuf, double **dstPosSV, int **dstWSp, AlgMatrix *dstModelSV, int *dstMaxKrigBuf, int nNbrC, int nNbrL)
 A convinience function for allocating and reallocating the buffers needed for 2D kriging. All given pointers must be valid and on the first call all pointer values (eg *dstNbrPosBuf) must be NULL. More...
 
WlzErrorNum WlzKrigReallocBuffers3D (WlzDVertex3 **dstNbrPosBuf, double **dstPosSV, int **dstWSp, AlgMatrix *dstModelSV, int *dstMaxKrigBuf, int nNbrC, int nNbrL)
 A convinience function for allocating and reallocating the buffers needed for 3D kriging. All given pointers must be valid and on the first call all pointer values (eg *dstNbrPosBuf) must be NULL. More...
 
WlzCompoundArrayWlzRGBAToCompound (WlzObject *obj, WlzRGBAColorSpace colSpc, WlzErrorNum *dstErr)
 Convert a RGBA image to a compound object. The RGBA channels are at array indices 0,1,2,3 respectively and the sub-object grey types will be WLZ_GREY_UBYTE. More...
 
WlzObjectWlzCompoundToRGBA (WlzCompoundArray *cmpnd, WlzRGBAColorSpace colSpc, WlzErrorNum *dstErr)
 Creates a WLZ_GREY_RGBA valued object from the given compound array. This is a static function which will always be called with valid parameters so they aren't checked. If all members of the compound array are empty then the returned object will be empty too. More...
 
WlzObjectWlzRGBAToModulus (WlzObject *obj, WlzErrorNum *dstErr)
 Calculate the modulus of the rgb values and return in an image of grey type WLZ_GREY_SHORT. More...
 
WlzObjectWlzIndexToRGBA (WlzObject *obj, unsigned char colormap[3][256], WlzErrorNum *dstErr)
 Convert a grey-level woolz object to RGBA via a colourmap look-up table. Values are clamped to [0,255] and the LUT is assumed to be unsigned byte 3x256. More...
 
WlzObjectWlzRGBAModGradient (WlzObject *obj, double width, WlzErrorNum *dstErr)
 Calculate the modulus of the rgb-level gradient at each point. The gradient images are calculated using WlzGauss2() with width parameter set to width. Note the modulus returned is the modulus of vector formed by the independent channels, i.e. take the modulus for each channel seperately then the modulus of the resultant vector. More...
 
double WlzRGBAPixelValue (WlzPixelV pixVal, WlzRGBAColorChannel chan, WlzErrorNum *dstErr)
 Calculate the pixel value for a given channel. For grey-pixel types the colour channel values are set equal to the grey value i.e. the pixel is assumed to be (g,g,g). If the grey-channel is requested of a colour pixel the modulus is returned. For colour pixels the error return value is -1, for grey pixels the error return should be tested since all values are valid (except grey-type WlzUByte). Hue and saturation are zero for grey-pixel types. More...
 
WlzErrorNum WlzRGBAModulusRange (WlzObject *obj, double *min, double *max)
 Computes the range of values in a RGBA type image. Currently implemented is modulus range. Use WlzGreyRange to get the individual colour ranges. More...
 
int WlzTiledValuesMode (WlzTiledValues *tv, WlzErrorNum *dstErr)
 Determines how the tiled values of a tiles value table may be used. If memory mapping is in use then the mode in which the file (containing the memory mapped values) was opened determines the modes in which the tiled values can be accessed. Inappropriate access (eg attempting to change a grey value in a memory mapped tiled values table that was opened for read only) will generate a memory fault. The returned value is a bit mask in which WLZ_IOFLAGS_READ will be set iff grey values can be read and WLZ_IOFLAGS_WRITE will be set iff the grey values can be written to (ie modified). More...
 
void WlzTiledValueBufferFlush (WlzTiledValueBuffer *tvb, WlzTiledValues *tv)
 Flushes the values in the tiled values buffer to the tiled values table. More...
 
void WlzTiledValueBufferFill (WlzTiledValueBuffer *tvb, WlzTiledValues *tv)
 Fills the tiled values buffer using values from the tiled values table. More...
 
void WlzTiledValuesCopyLine (WlzTiledValues *tv, WlzGreyP gP, int pl, int ln, int kl1, int lkl)
 Copies a single line of grey values to a tiled value table. This is done within the valid tiles which may lie outside of an object's domain, so care should be used when calling this function. All the given coordinate values are with respect to the tiled value table's origin. If the tiled values have a number of values per element greater than one then the given buffer must have too. More...
 
int WlzTiledValuesValPerElm (WlzTiledValues *tVal)
 Computes the number of values per pixel/voxel for a tiled value table. More...
 
WlzObjectType WlzGreyValueTableType (int rank, WlzGreyTableType tableType, WlzGreyType greyType, WlzErrorNum *dstErr)
 Computes a grey table type from table and grey types. This function is equivalent to the macro WLZ_GREY_TABLE_TYPE but with range checks. More...
 
WlzGreyType WlzGreyTableTypeToGreyType (WlzObjectType gTabType, WlzErrorNum *dstErr)
 Computes the type of grey from a grey table type. This function is equivalent to the macro WLZ_GREY_TABLE_TO_GREY_TYPE but with range checks. More...
 
WlzGreyTableType WlzGreyTableTypeToTableType (WlzObjectType gTabType, WlzErrorNum *dstErr)
 Computes the type of table from a grey table type. This function is equivalent to the macro WLZ_GREY_TABLE_TO_TABLE_TYPE but with range checks. More...
 
int WlzGreyTableTypeToRank (WlzObjectType gTabType, WlzErrorNum *dstErr)
 Computes the rank from a grey table type. This function is equivalent to the macro WLZ_GREY_TABLE_TO_RANK but with range checks. More...
 
WlzGreyTableType WlzGreyTableIsTiled (WlzObjectType gTabType)
 Determines whether the grey table type is tiled. More...
 
WlzGreyType WlzGreyTypeFromObj (WlzObject *obj, WlzErrorNum *dstErr)
 Gets the grey type of the values in a Woolz object. If the object is not a domain object with values an error is returned. If the object is a 3D domain object with values, all 2D value tables are checked and an error is returned if they don't all have the same grey type. More...
 
WlzDVertex3 WlzVozelSz (WlzObject *obj, WlzErrorNum *dstErr)
 Gets the given 3D domain objects voxel size. More...
 
void * WlzIndexedValueGet (WlzIndexedValues *ixv, int idx)
 Gets a pointer to the valuetable entry for the given index. If the indexed values are not valid for the given index NULL will be returned. See also WlzIndexedValueExtGet(). More...
 
void * WlzIndexedValueExtGet (WlzIndexedValues *ixv, int idx)
 Gets a pointer to the valuetable entry for the given index. The value table is extended as required so that there should always be a valid entry unless memory allocation fails. See also WlzIndexedValueGet(). More...
 
WlzErrorNum WlzIndexedValuesSet (WlzObject *obj, size_t cnt, void *val)
 Sets all values covered by the domain in the given object to the given value. Ths function calls memcpy() for each indexed value using the given value count and pointer. More...
 
void WlzValueSetInt (int *vec, int value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is int. More...
 
void WlzValueSetShort (short *vec, short value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is short. More...
 
void WlzValueSetUByte (WlzUByte *vec, WlzUByte value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is WlzUByte. More...
 
void WlzValueSetFloat (float *vec, float value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is float. More...
 
void WlzValueSetDouble (double *vec, double value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is double. More...
 
void WlzValueSetRGBA (WlzUInt *vec, WlzUInt value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is rgb-alpha. More...
 
void WlzValueSetDVertex (WlzDVertex2 *vec, WlzDVertex2 value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is WlzDVertex2. More...
 
void WlzValueSetFVertex (WlzFVertex2 *vec, WlzFVertex2 value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is WlzFVertex2. More...
 
void WlzValueSetIVertex (WlzIVertex2 *vec, WlzIVertex2 value, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is WlzIVertex2. More...
 
void WlzValueSetGrey (WlzGreyP vec, size_t vecOff, WlzGreyV value, WlzGreyType gType, size_t count)
 Sets the elements of the given vector to a given value, where the vector type is any one of int, short, WlzUByte, float, double. More...
 
WlzGreyP WlzValueSetGreyP (WlzGreyP base, WlzGreyType gType, size_t off)
 Sets a grey pointer using the given base grey pointer and an offset. More...
 
void WlzValueClampIntToShort (int *vec, size_t count)
 Clamps a vector of int values to the limits of short. More...
 
void WlzValueClampIntToUByte (int *vec, size_t count)
 Clamps a vector of int values to the limits of WlzUByte. More...
 
void WlzValueClampShortToUByte (short *vec, size_t count)
 Clamps a vector of short values to the limits of WlzUByte. More...
 
void WlzValueClampDoubleToInt (double *vec, size_t count)
 Clamps a vector of double values to the limits of int. More...
 
void WlzValueClampDoubleToShort (double *vec, size_t count)
 Clamps a vector of double values to the limits of short. More...
 
void WlzValueClampDoubleToUByte (double *vec, size_t count)
 Clamps a vector of double values to the limits of WlzUByte. More...
 
void WlzValueClampDoubleToRGBA (double *vec, size_t count)
 Clamps a vector of double values to the limits of RGBA. More...
 
void WlzValueClampDoubleToFloat (double *vec, size_t count)
 Clamps a vector of double values to the limits of float. More...
 
void WlzValueClampFloatToInt (float *vec, size_t count)
 Clamps a vector of float values to the limits of int. More...
 
void WlzValueClampFloatToShort (float *vec, size_t count)
 Clamps a vector of float values to the limits of short. More...
 
void WlzValueClampFloatToUByte (float *vec, size_t count)
 Clamps a vector of float values to the limits of WlzUByte. More...
 
void WlzValueClampIntIntoShort (short *dst, int *src, size_t count)
 Clamps a vector of int values into a vector of short values. More...
 
void WlzValueClampIntIntoUByte (WlzUByte *dst, int *src, size_t count)
 Clamps a vector of nt values into a vector of WlzUByte values. More...
 
void WlzValueClampShortIntoUByte (WlzUByte *dst, short *src, size_t count)
 Clamps a vector of short values into a vector of WlzUByte values. More...
 
void WlzValueClampFloatIntoInt (int *dst, float *src, size_t count)
 Clamps a vector of float values into a vector of int values. More...
 
void WlzValueClampFloatIntoShort (short *dst, float *src, size_t count)
 Clamps a vector of float values into a vector of short values. More...
 
void WlzValueClampFloatIntoUByte (WlzUByte *dst, float *src, size_t count)
 Clamps a vector of float values into a vector of WlzUByte values. More...
 
void WlzValueClampDoubleIntoInt (int *dst, double *src, size_t count)
 Clamps a vector of into double values into a vector of int values. More...
 
void WlzValueClampDoubleIntoShort (short *dst, double *src, size_t count)
 Clamps a vector of double values into a vector of short values. More...
 
void WlzValueClampDoubleIntoUByte (WlzUByte *dst, double *src, size_t count)
 Clamps a vector of double values into a vector of WlzUByte values. More...
 
void WlzValueClampDoubleIntoFloat (float *dst, double *src, size_t count)
 Clamps a vector of double values into a vector of float values. More...
 
void WlzValueClampIntIntoRGBA (WlzUInt *dst, int *src, size_t count)
 Clamps a vector of int values into a vector of RGBA values. More...
 
void WlzValueClampShortIntoRGBA (WlzUInt *dst, short *src, size_t count)
 Clamps a vector of short values into a vector of RGBA values. More...
 
void WlzValueClampFloatIntoRGBA (WlzUInt *dst, float *src, size_t count)
 Clamps a vector of float values into a vector of RGBA values. More...
 
void WlzValueClampDoubleIntoRGBA (WlzUInt *dst, double *src, size_t count)
 Clamps a vector of double values into a vector of RGBA values. More...
 

Detailed Description

Function Documentation

◆ WlzSetBackground()

◆ WlzGetBackground()

WlzPixelV WlzGetBackground ( WlzObject obj,
WlzErrorNum dstErr 
)

Gets the background value of the given object.

Returns
The background value. If the returned pixel value type is WLZ_GREY_ERROR then an error has occurred.
Parameters
objGiven object.
dstErrDestination error pointer, may be NULL.

References _WlzRagRValues::bckgrnd, _WlzRectValues::bckgrnd, _WlzIntervalValues::bckgrnd, _WlzVoxelValues::bckgrnd, _WlzTiledValues::bckgrnd, _WlzValues::core, _WlzObject::domain, _WlzValues::i, _WlzDomain::i, _WlzGreyV::inv, _WlzValues::obj, _WlzDomain::p, _WlzValues::r, _WlzValues::t, _WlzPixelV::type, _WlzObject::type, _WlzPlaneDomain::type, _WlzCoreValues::type, _WlzPixelV::v, _WlzValues::v, _WlzObject::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_EMPTY_OBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_PLANEDOMAIN_TYPE, WLZ_ERR_VALUES_TYPE, WLZ_GREY_ERROR, WLZ_GREY_INT, WLZ_GREY_TAB_INTL, WLZ_GREY_TAB_RAGR, WLZ_GREY_TAB_RECT, WLZ_GREY_TAB_TILED, WLZ_PLANEDOMAIN_DOMAIN, WLZ_TRANS_OBJ, WLZ_VOXELVALUETABLE_GREY, WlzGreyTableIsTiled(), and WlzGreyTableTypeToTableType().

Referenced by WlzBuildObj3(), WlzClipObjToBox3D(), WlzConstruct3DObjFromFile(), WlzConstruct3DObjFromObj(), WlzConvolveObj(), WlzCutObjToValBox3D(), WlzEffWriteObjStack(), WlzFillBlankPlanes(), WlzGreyCrossing(), WlzGreyTemplate(), WlzGreyTransfer(), WlzGreyVariance(), WlzIntersectN(), WlzLabel3D(), WlzLUTTransformObj(), WlzNewGrey(), WlzSampleObjPoint2D(), WlzSampleObjPoint3D(), WlzScalarBinaryOp2(), WlzSepTrans(), WlzTensorGetComponent(), and WlzUnionN().

◆ WlzSetBackGroundNewObj()

WlzObject* WlzSetBackGroundNewObj ( WlzObject gObj,
WlzPixelV  bgdV,
WlzErrorNum dstErr 
)

Creates a new Woolz object in which the background value is as given. The given object must be either a 2D or 3D domain object with a valid domain, however it's values can be NULL. If the values are NULL then a new value table is created with the same grey type as the given background value, or if non-NULL then a new value table is created while sharing the values of the original object's value table when this is possible. The given object remains unchanged apart from linkcounts.

Returns
New Woolz object or NULL on error.
Parameters
gObjGiven object.
bgdVGiven background value.
dstErrDestination error pointer, may be NULL.

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzPixelV::type, _WlzObject::values, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_GREY_TAB_RAGR, WlzGreyValueTableType(), WlzNewObjectValues(), and WlzNewObjectValueTable().

◆ WlzConvertPix()

WlzObject* WlzConvertPix ( WlzObject obj,
WlzGreyType  newpixtype,
WlzErrorNum dstErr 
)

Converts the pixel type of the image object, creating a new object with the same domain as the given object.

Returns
New object with converted valuetable, NULL on error.
Parameters
objThe object for conversion.
newpixtypeThe required grey-value type.
dstErrDestination error pointer, may be NULL.

References _WlzObject::type, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, and WLZ_GREY_ERROR.

Referenced by WlzGauss2(), WlzGreyModGradient(), WlzLaplacian(), and WlzSobel().

◆ WlzConvertPolyType()

◆ WlzConvertBoundType()

WlzBoundList* WlzConvertBoundType ( WlzBoundList bound,
WlzObjectType  type,
WlzErrorNum dstErr 
)

Converts a boundary list to the required type.

Returns
New boundary list or NULL on error.
Parameters
boundGiven boundary list.
typeRequired boundary list type.
dstErrDestination pointer for error, may be NULL.

References _WlzBoundList::down, _WlzBoundList::next, _WlzBoundList::poly, _WlzBoundList::type, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WlzAssignBoundList(), WlzAssignPolygonDomain(), WlzConvertPolyType(), WlzFreeBoundList(), WlzMakeBoundList(), and _WlzBoundList::wrap.

Referenced by WlzConvertVtx().

◆ WlzConvertVtx()

WlzObject* WlzConvertVtx ( WlzObject obj,
WlzVertexType  newVtxType,
WlzErrorNum dstErr 
)

Converts the vertices of an object to the required type.

Returns
New object, NULL on error.
Parameters
objGiven object.
newVtxTypeRequired vertex type.
dstErrDestination pointer for error, may be NULL.

References _WlzDomain::b, _WlzValues::core, _WlzObject::domain, _WlzDomain::poly, _WlzObject::type, WLZ_2D_POLYGON, WLZ_3D_DOMAINOBJ, WLZ_BOUNDLIST, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_PARAM_TYPE, WLZ_POLYGON_DOUBLE, WLZ_POLYGON_FLOAT, WLZ_POLYGON_INT, WLZ_VERTEX_D2, WLZ_VERTEX_F2, WLZ_VERTEX_I2, WlzConvertBoundType(), WlzConvertPolyType(), and WlzMakeMain().

◆ WlzCutObjToBox2D()

WlzObject* WlzCutObjToBox2D ( WlzObject sObj,
WlzIBox2  cutBox,
WlzGreyType  dGreyType,
int  bgNoise,
double  bgMu,
double  bgSigma,
WlzErrorNum dstErrNum 
)

Cuts a new object with a rectangular value table from the given woolz object.

Returns
New object with rectangular value table or NULL on error.
Parameters
sObjGiven source object.
cutBoxRectangle box to cut from the object.
dGreyTypeRequired grey type for the value table.
bgNoiseIf zero background value is used otherwise if non zero the background is set using gaussian noise.
bgMuMean of background noise.
bgSigmaStandard deviation of the background noise.
dstErrNumDestination pointer for error number, may be NULL if not required.

References WlzCutObjToValBox2D().

Referenced by WlzEffWriteObjJpeg(), WlzEffWriteObjTxt(), and WlzWindow().

◆ WlzCutObjToValBox2D()

WlzObject* WlzCutObjToValBox2D ( WlzObject sObj,
WlzIBox2  cutBox,
WlzGreyType  dGreyType,
void *  gValP,
int  bgNoise,
double  bgMu,
double  bgSigma,
WlzErrorNum dstErrNum 
)

Cuts a new object with a rectangular value table from the given woolz object and allows access to grey table. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored.

Returns
New object with rectangular value table or NULL on error.
Parameters
sObjGiven source object.
cutBoxRectangle box to cut from the object.
dGreyTypeRequired grey type for the value table.
gValPIf non-NULL allocated space for grey values.
bgNoiseIf zero background value is used otherwise if non zero the background is set using gaussian noise.
bgMuMean of background noise.
bgSigmaStandard deviation of the background noise.
dstErrNumDestination pointer for error number, may be NULL if not required.

References _WlzPixelV::type, and WLZ_GREY_ERROR.

Referenced by WlzCutObjToBox2D(), WlzCutObjToValBox3D(), WlzEffWriteObjBmp2D(), and WlzEffWriteObjPnm2D().

◆ WlzCutObjToBox3D()

WlzObject* WlzCutObjToBox3D ( WlzObject sObj,
WlzIBox3  cutBox,
WlzGreyType  dGreyType,
int  bgNoise,
double  bgMu,
double  bgSigma,
WlzErrorNum dstErrNum 
)

Cuts a new object with (a) rectangular value table(s) from the given woolz object. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored.

Returns
New object with rectangular value table(s) or NULL on error.
Parameters
sObjGiven source object.
cutBoxCut box.
dGreyTypeRequired grey type for the value table.
bgNoiseIf zero background value is used otherwise if non zero the background is set using gaussian noise.
bgMuMean of background noise.
bgSigmaStandard deviation of the background noise.
dstErrNumDestination pointer for error number, may be NULL if not required.

References WlzCutObjToValBox3D().

◆ WlzCutObjToValBox3D()

WlzObject* WlzCutObjToValBox3D ( WlzObject sObj,
WlzIBox3  cutBox,
WlzGreyType  dGreyType,
void *  gValP,
int  bgNoise,
double  bgMu,
double  bgSigma,
WlzErrorNum dstErrNum 
)

Cuts a new object with (a) rectangular value table(s) from the given woolz object. If the source object has no values then the destination object will always have foreground value 1 and background value 0, ie the background parameters are ignored.

Returns
New object with rectangular value table(s) or NULL on error.
Parameters
sObjGiven source object.
cutBoxCut box.
dGreyTypeRequired grey type for the value table.
gValPIf non-NULL allocated space for grey values.
bgNoiseIf zero background value is used otherwise if non zero the background is set using gaussian noise.
bgMuMean of background noise.
bgSigmaStandard deviation of the background noise.
dstErrNumDestination pointer for error number, may be NULL if not required.

References AlcMalloc(), _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzPlaneDomain::domains, _WlzGreyP::inp, _WlzDomain::p, _WlzPlaneDomain::plane1, _WlzValues::t, _WlzPixelV::type, _WlzObject::type, _WlzCoreDomain::type, _WlzPlaneDomain::type, _WlzCoreValues::type, _WlzGreyV::ubv, _WlzGreyP::v, _WlzPixelV::v, _WlzObject::values, _WlzVoxelValues::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_DBG, WLZ_DBG_LVL_1, WLZ_DBG_LVL_2, WLZ_DBG_LVL_FN, WLZ_EMPTY_OBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_GREY_TYPE, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_GREY_UBYTE, WLZ_PLANEDOMAIN_DOMAIN, WLZ_VOXELVALUETABLE_GREY, WlzCutObjToValBox2D(), WlzGetBackground(), WlzGreySize(), WlzGreyTableIsTiled(), WlzMakeEmpty(), WlzMakeMain(), WlzMakePlaneDomain(), WlzMakeVoxelValueTb(), WlzValueConvertPixel(), WlzValueSetGreyP(), _WlzIBox2::xMax, _WlzIBox3::xMax, _WlzIBox2::xMin, _WlzIBox3::xMin, _WlzIBox2::yMax, _WlzIBox3::yMax, _WlzIBox2::yMin, _WlzIBox3::yMin, _WlzIBox3::zMax, and _WlzIBox3::zMin.

Referenced by WlzCutObjToBox3D().

◆ WlzGreyDitherObj()

WlzObject* WlzGreyDitherObj ( WlzObject o,
unsigned int  destBits,
WlzErrorNum dstErr 
)

Makes a dithered object from the given grey-level Woolz object. The destination bits are determined by the number of shades in the dithered image (usually 1 bit) and the bit planes to use (typically to match the bit-planes of a display mask).

Returns
Object with dithered grey values.
Parameters
oInput object.
destBitsDestination bit planes for dithered values.
dstErrError return.
Source:
WlzGreyDitherObj.c

References _WlzValues::core, _WlzGreyP::inp, _WlzIntervalWSpace::lftpos, _WlzIntervalWSpace::linpos, _WlzGreyWSpace::pixeltype, _WlzIntervalWSpace::rgtpos, _WlzGreyP::shp, _WlzObject::type, _WlzCoreValues::type, _WlzGreyWSpace::u_grintptr, _WlzGreyP::ubp, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_EMPTY_OBJ, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_PARAM_DATA, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WLZ_TRANS_OBJ, WlzGreyTableIsTiled(), WlzInitGreyScan(), WlzMakeEmpty(), WlzNewGrey(), and WlzNextGreyInterval().

◆ WlzGreyInvertMinMax()

WlzErrorNum WlzGreyInvertMinMax ( WlzObject obj,
WlzPixelV  min,
WlzPixelV  max 
)

Invert the Grey values of an object within a given
range. The supplied min and max values define the grey
transformation by:

\[ g' = g_{max} + g_{min} - g \]

which means that g=gmax gives g'=gmin and g=gmin gives
g'=gmax. This is a generalisation of the original invert and allows for the "normal" inversion of 255-g for byte images. The user must ensure the grey-value type of the given object can hold the result e.g. if the result is
negative. Note it is assumed that min and max have
a grey type which can be converted to the grey-type
of the given image.

Returns
Woolz error.
Parameters
objInput object.
minMinimu grey value for the inversion function.
maxMaximun value for the inversion function.
Source:
WlzGreyInvertMinMax.c

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_OBJECT_NULL, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, and WlzGreyTableIsTiled().

◆ WlzGreyMask()

WlzObject* WlzGreyMask ( WlzObject obj,
WlzObject mask,
WlzPixelV  maskVal,
WlzErrorNum dstErr 
)

Set the value maskVal within the domain given by the
mask object. The mask object can be a 2D, 3D, polygon
or boundary object. A 3D mask with a 2D object is an
error. A 2D mask with a 3D object will be applied to
each plane in turn.

Returns
New object with the same domain as the input object but with values in the intersection with the mask domain set to the mask value. NULL on error.
Parameters
objInput object
maskMask object.
maskValmask value.
dstErrError return.
Source:
WlzGreyMask.c

References _WlzValues::core, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, and WlzGreyTableIsTiled().

Referenced by WlzIndexObjFromCompound().

◆ WlzGreyModGradient()

WlzObject* WlzGreyModGradient ( WlzObject obj,
double  width,
WlzErrorNum dstErr 
)

Calculate the modulus of the grey-level gradient at each point. The gradient images are calculated using WlzGauss2() with width parameter set to width. Will now calculate the modulus for each object of a compound object if appropriate.

Returns
Object with values set to the gradient modulus at each pixel.
Parameters
objInput object.
widthWidth parameter for the gaussian gradient operator.
dstErrError return.
Source:
WlzGreyModGradient.c

References _WlzIntervalWSpace::colrmn, _WlzValues::core, _WlzDomain::core, _WlzGreyP::dbp, _WlzObject::domain, _WlzGreyP::flp, _WlzGreyP::inp, _WlzCompoundArray::n, _WlzCompoundArray::o, _WlzCompoundArray::otype, _WlzGreyWSpace::pixeltype, _WlzGreyP::shp, _WlzObject::type, _WlzCompoundArray::type, _WlzCoreDomain::type, _WlzCoreValues::type, _WlzGreyWSpace::u_grintptr, _WlzGreyP::ubp, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_COMPOUND_ARR_1, WLZ_COMPOUND_ARR_2, WLZ_EMPTY_DOMAIN, WLZ_EMPTY_OBJ, WLZ_EMPTY_VALUES, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WlzAssignObject(), WlzConvertPix(), WlzCopyValues(), WlzFreeObj(), WlzGauss2(), WlzGreyTableIsTiled(), WlzGreyTableTypeToGreyType(), WlzInitGreyScan(), WlzMakeCompoundArray(), WlzMakeEmpty(), WlzMakeMain(), WlzNextGreyInterval(), and WlzRGBAModGradient().

Referenced by WlzRGBAModGradient(), and WlzScalarFeatures2D().

◆ WlzInitGreyScan()

WlzErrorNum WlzInitGreyScan ( WlzObject obj,
WlzIntervalWSpace iwsp,
WlzGreyWSpace gwsp 
)

◆ WlzEndGreyScan()

◆ WlzInitGreyRasterScan()

WlzErrorNum WlzInitGreyRasterScan ( WlzObject obj,
WlzIntervalWSpace iwsp,
WlzGreyWSpace gwsp,
WlzRasterDir  raster,
int  tranpl 
)

As WlzInitGreyScan(), but with choice of raster direction and transplanting,.

Returns
Woolz error code.
Parameters
objInput object to be scanned.
iwspInterval scanning workspace.
gwspGrey value table scanning workspace.
rasterDirection for the raster scan.
tranplFlag to allow overwriting of grey-values.

References WLZ_ERR_NONE, WlzInitGreyWSpace(), and WlzInitRasterScan().

Referenced by WlzInitGreyScan(), and WlzSeqPar().

◆ WlzInitGreyWSpace()

◆ WlzNextGreyInterval()

WlzErrorNum WlzNextGreyInterval ( WlzIntervalWSpace iwsp)

Obtain next interval and its grey table.

Returns
Woolz error code.
            Note - cryptic documentation:
    If tranpl and gvio=0 and scan already started (check line
    number) then the previous grey interval must be collected,
    if tranpl and gvio=1 then must output this interval (unless
    scan finished).
Woolz error.
Parameters
iwspInterval scanning workspace - this must be initialised.

References _WlzIntervalWSpace::gryptr, _WlzGreyWSpace::gvio, _WlzIntervalWSpace::linbot, _WlzIntervalWSpace::lineraster, _WlzIntervalWSpace::linpos, _WlzGreyWSpace::tranpl, WLZ_ERR_NONE, WlzGreyInterval(), and WlzNextInterval().

Referenced by WlzCMeshCurvToImage(), WlzContourGrdObj2D(), WlzEffWriteObjJpeg(), WlzGaussNoise(), WlzGetProjectionFromObject(), WlzGreyDitherObj(), WlzGreyIncValues2D(), WlzGreyMeanDifference(), WlzGreyModGradient(), WlzGreyRange(), WlzGreyScale(), WlzGreySetRange(), WlzGreySetRangeLut(), WlzGreySetValue(), WlzGreyShift(), WlzIntersectN(), WlzMass(), WlzNewGrey(), WlzPrincipalAngle(), WlzProjectObjToPlane(), WlzRGBAModGradient(), WlzRGBAModulusRange(), WlzSepTrans(), WlzSeqPar(), WlzToArray1D(), and WlzUnionN().

◆ WlzGreyInterval()

WlzErrorNum WlzGreyInterval ( WlzIntervalWSpace iwsp)

Handle grey table for an interval. This must follow a call to WlzNextInterval().

Returns
Woolz error code.
Parameters
iwspInterval scaning workspace.

References _WlzIntervalWSpace::colrmn, _WlzGreyP::dbp, _WlzTiledValues::dim, _WlzGreyP::flp, _WlzGreyWSpace::gdomaintype, _WlzGreyWSpace::gline, _WlzIntervalWSpace::gryptr, _WlzGreyWSpace::gtable, _WlzGreyWSpace::gvio, _WlzValues::i, _WlzGreyP::inp, _WlzTiledValueBuffer::kl, _WlzRagRValues::kol1, _WlzRectValues::kol1, _WlzIntervalValues::kol1, _WlzTiledValues::kol1, _WlzIntervalWSpace::lftpos, _WlzRectValues::line1, _WlzTiledValues::line1, _WlzIntervalWSpace::lineraster, _WlzIntervalWSpace::linpos, _WlzTiledValueBuffer::ln, _WlzTiledValueBuffer::lnbuf, _WlzIntervalWSpace::nwlpos, _WlzGreyWSpace::pixeltype, _WlzTiledValueBuffer::pl, _WlzTiledValues::plane1, _WlzIntervalWSpace::plnpos, _WlzValues::r, _WlzGreyP::rgbp, _WlzIntervalWSpace::rgtpos, _WlzGreyP::shp, _WlzValues::t, _WlzGreyWSpace::tranpl, _WlzGreyWSpace::tvb, _WlzGreyWSpace::u_grintptr, _WlzGreyP::ubp, _WlzGreyP::v, _WlzValues::v, _WlzTiledValueBuffer::valid, _WlzValueLine::values, _WlzRectValues::values, _WlzValueLine::vkol1, _WlzValueLine::vlastkl, _WlzValueIntervalLine::vtbint, _WlzRectValues::width, WLZ_CLAMP, WLZ_ERR_GREY_TYPE, WLZ_ERR_INT_DATA, WLZ_ERR_NONE, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_INTL, WLZ_GREY_TAB_RAGR, WLZ_GREY_TAB_RECT, WLZ_GREY_TAB_TILED, WLZ_GREY_UBYTE, WlzTiledValueBufferFill(), and WlzTiledValueBufferFlush().

Referenced by WlzNextGreyInterval().

◆ WlzGreyNewHilbertRankValues()

WlzObject* WlzGreyNewHilbertRankValues ( WlzObject in,
WlzErrorNum dstErr 
)

Creates a new domain object with integer values that increment throughout the object in Hilbert rank order. The input object's domain is used in the output object. Output object values start from 1.

Returns
New grey value domain object with grey values set to the Hilbert rank of the voxel coordinates.
Parameters
inInput domain object.
dstErrDestination error pointer, may be NULL.

References _WlzDomain::core, _WlzObject::domain, _WlzObject::type, WLZ_2D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, and WLZ_ERR_OBJECT_NULL.

◆ WlzGreySetHilbertRankValues()

WlzErrorNum WlzGreySetHilbertRankValues ( WlzObject obj,
unsigned int *  rVal 
)

Sets the values of domain object with int values so that they increment throughout the object in Hilbert rank order.

Returns
Woolz error code.
Parameters
objInput domain object.
rValMinimum rank value on input and maximum rank value on output, NULL is equivalent to zero minimum rank value.

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, and WlzGreyTableIsTiled().

Referenced by WlzMakeTiledValuesObj2D(), and WlzMakeTiledValuesObj3D().

◆ WlzGreyNewIncValues()

WlzObject* WlzGreyNewIncValues ( WlzObject in,
WlzErrorNum dstErr 
)

Creates a new domain object with integer values that increment throughout the object in scan order. Object values start from 1.

Returns
New grey value domain object with incrementing values.
Parameters
inInput domain object.
dstErrDestination error pointer, may be NULL.

References _WlzDomain::core, _WlzObject::domain, _WlzObject::type, WLZ_2D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, and WLZ_ERR_OBJECT_NULL.

◆ WlzGreySetIncValues()

WlzErrorNum WlzGreySetIncValues ( WlzObject obj,
int *  gVal 
)

Sets the values of a 2 or 3D domain object with int values so that they increment throughout the object in scan order. Object values are set by incrementing the given value in place. The given object must have WLZ_GREY_INT values.

Returns
Woolz error code.
Parameters
objThe given object.
gValPointer to current value, this is incremented in place. If NULL then the values will be incremented from zero.

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_VALUES_NULL, WLZ_GREY_INT, and WlzGreyTypeFromObj().

Referenced by WlzMakeTiledValuesObj2D(), and WlzMakeTiledValuesObj3D().

◆ WlzGreySetValue()

◆ WlzGreyTemplate()

WlzObject* WlzGreyTemplate ( WlzObject obj,
WlzObject tmpl,
WlzPixelV  tmplVal,
WlzErrorNum dstErr 
)
Returns
New object with the same domain tmpl but values in the intersection with obj set to those of the object. Returns NULL on error.
Parameters
objInput object to which the template is applied
tmplTemplate object
tmplValTemplate value for regions in the template not in the original object
dstErrError return.
Source:
WlzGreyTemplate.c

References _WlzValues::core, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_UBYTE, WlzGetBackground(), WlzGreyTableIsTiled(), and WlzGreyTableTypeToGreyType().

Referenced by WlzOffsetDist().

◆ WlzGreyTransfer()

WlzObject* WlzGreyTransfer ( WlzObject dObj,
WlzObject sObj,
int  inplace,
WlzErrorNum dstErr 
)

Transfers grey values from the source object to the destination object within the intersection of the source and destination. Grey values within the destination object outside of the source object are unchanged. It is an error if either object has a different dimension or grey value type, except for when either is an empty object.

Returns
New object or NULL on error.
Parameters
dObjDestination object which may be empty, but otherwise should be of the same dimension as the source object with valid values..
sObjSource object which if not empty must have both a valid domain and valid values.
inplaceOverwrite the destination object's values if non zero.
dstErrDestination error pointer, may be NULL.

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::plist, _WlzObject::type, _WlzValues::v, _WlzObject::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_VALUES_NULL, WLZ_GREY_TAB_RAGR, WlzAssignValues(), WlzCopyObject(), WlzGetBackground(), WlzGreySetValue(), WlzGreyTypeFromObj(), WlzGreyValueTableType(), WlzIntersect2(), WlzIsEmpty(), WlzMakeEmpty(), WlzMakeMain(), WlzNewValuesVox(), and WlzNewValueTb().

◆ WlzGreyValueGetDir()

void WlzGreyValueGetDir ( WlzGreyValueWSpace gVWSp,
int  plane,
int  line,
int  kol 
)

Gets a single grey value/pointer for the given point from the 3D values and domain in the work space.

Parameters
gVWSpgrey-value work space
planeplane coordinate
lineline coordinate
kolcolumn coordinate

References _WlzGreyValueWSpace::domain, _WlzGreyValueWSpace::gTabType, _WlzPlaneDomain::lastpl, _WlzDomain::p, _WlzGreyValueWSpace::plane, _WlzPlaneDomain::plane1, WLZ_GREY_TAB_TILED, and WlzGreyValueGet().

◆ WlzKrigSetModelFn()

void WlzKrigSetModelFn ( WlzKrigModelFn fn,
WlzKrigModelFnType  type,
double  c0,
double  c1,
double  a 
)

Sets a kriging function data stuctures parameters and function pointer. See the kriging model function types and their implementation for the meaning of the parameters.

Parameters
fnThe kriging function data stucture to be set.
typeKriging model function type.
c0Nugget (offset) parameter.
c1Sill (slope) parameter.
aRange parameter.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, _WlzKrigModelFn::c1, _WlzKrigModelFn::fn, _WlzKrigModelFn::type, WLZ_KRIG_MODELFN_EXPONENTIAL, WLZ_KRIG_MODELFN_GAUSSIAN, WLZ_KRIG_MODELFN_INVALID, WLZ_KRIG_MODELFN_LINEAR, WLZ_KRIG_MODELFN_NUGGET, WLZ_KRIG_MODELFN_QUADRATIC, WLZ_KRIG_MODELFN_SPHERICAL, WlzKrigModelFnExponential(), WlzKrigModelFnGaussian(), WlzKrigModelFnLinear(), WlzKrigModelFnNugget(), WlzKrigModelFnQuadratic(), and WlzKrigModelFnSpherical().

Referenced by WlzCMeshMeshMeshProduct().

◆ WlzKrigModelFnLinear()

double WlzKrigModelFnLinear ( WlzKrigModelFn f,
double  h 
)

A linear kriging variance model.

\[ \left\{ \begin{array}{ll} h < a & \gamma(h) = c_0 + \frac{(c_1 - c_0)}{a} h \\ h \geq a & \gamma(h) = c_1 \end{array} \right. \]

.

Returns
Function output value.
Parameters
fThe kriging function data stucture.
hFunction input value.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, and _WlzKrigModelFn::c1.

Referenced by WlzKrigSetModelFn().

◆ WlzKrigModelFnSpherical()

double WlzKrigModelFnSpherical ( WlzKrigModelFn f,
double  h 
)

A spherical kriging variance model.

\[ \left\{ \begin{array}{ll} 0 < h \leq a & \gamma(h) = c_0 + c_1 \frac{1}{2} (\frac{3h}{a} - \frac{h^3}{a^3}) \\ h > a & \gamma(h) = c_0 + c_1 \end{array} \right. \]

.

Returns
Function output value.
Parameters
fThe kriging function data stucture.
hFunction input value.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, and _WlzKrigModelFn::c1.

Referenced by WlzKrigSetModelFn().

◆ WlzKrigModelFnExponential()

double WlzKrigModelFnExponential ( WlzKrigModelFn f,
double  h 
)

An exponential kriging variance model.

\[ \gamma(h) = c_0 + c_1(1 - e^{-\frac{h}{a}}) \]

.

Returns
Function output value.
Parameters
fThe kriging function data stucture.
hFunction input value.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, and _WlzKrigModelFn::c1.

Referenced by WlzKrigSetModelFn().

◆ WlzKrigModelFnGaussian()

double WlzKrigModelFnGaussian ( WlzKrigModelFn f,
double  h 
)

A Gaussian kriging variance model.

\[ \gamma(h) = c_0 + c_1(1 - e^{-(\frac{h}{a})^2}) \]

.

Returns
Function output value.
Parameters
fThe kriging function data stucture.
hFunction input value.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, and _WlzKrigModelFn::c1.

Referenced by WlzKrigSetModelFn().

◆ WlzKrigModelFnQuadratic()

double WlzKrigModelFnQuadratic ( WlzKrigModelFn f,
double  h 
)

A Quadratic kriging variance model.

\[ \gamma(h) = c_0 + c_1 \left( \frac{ (\frac{h}{a})^2} {1 + (\frac{h}{a})^2} \right) \]

.

Returns
Function output value.
Parameters
fThe kriging function data stucture.
hFunction input value.

References _WlzKrigModelFn::a, _WlzKrigModelFn::c0, and _WlzKrigModelFn::c1.

Referenced by WlzKrigSetModelFn().

◆ WlzKrigOSetModelSV2D()

WlzErrorNum WlzKrigOSetModelSV2D ( AlgMatrix  modelSV,
WlzKrigModelFn modelFn,
int  n,
WlzDVertex2 nbr,
int *  wSp 
)

Computes the ordinary kriging model semi-variogram from the given neighbourhood vertices.

Returns
Woolz error code. If all input parameters are valid then this will return WLZ_ERR_NONE.
Parameters
modelSVValid \((n + 1)\times(n + 1)\) matrix for the model semi-variogram. This must be a square matrix.
modelFnThe model value function.
nNumber of neighbourhood vertices.
nbrThe neighbourhood vertex positions.
wSpWorkspace with room for n values (used by AlgMatrixLUDecomp()).

References ALG_MATRIX_RECT, AlgMatrixLUDecompRaw(), _AlgMatrixRect::array, _AlgMatrix::core, _WlzKrigModelFn::fn, _AlgMatrixCore::nC, _AlgMatrixCore::nR, _AlgMatrix::rect, _AlgMatrixCore::type, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_PARAM_NULL, WLZ_ERR_PARAM_TYPE, WLZ_VTX_2_LENGTH, WLZ_VTX_2_SUB, and WlzErrorFromAlg().

Referenced by WlzCMeshMeshMeshProduct().

◆ WlzKrigOSetModelSV3D()

WlzErrorNum WlzKrigOSetModelSV3D ( AlgMatrix  modelSV,
WlzKrigModelFn modelFn,
int  n,
WlzDVertex3 nbr,
int *  wSp 
)

Computes the ordinary kriging model semi-variogram from the given neighbourhood vertices.

Returns
Woolz error code. If all input parameters are valid then this will return WLZ_ERR_NONE.
Parameters
modelSVValid \((n + 1)\times(n + 1)\) matrix for the model semi-variogram. This must be a square matrix.
modelFnThe model value function.
nNumber of neighbourhood vertices.
nbrThe neighbourhood vertex positions.
wSpWorkspace with room for n values (used by AlgMatrixLUDecomp()).

References ALG_MATRIX_RECT, AlgMatrixLUDecompRaw(), _AlgMatrixRect::array, _AlgMatrix::core, _WlzKrigModelFn::fn, _AlgMatrixCore::nC, _AlgMatrixCore::nR, _AlgMatrix::rect, _AlgMatrixCore::type, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_PARAM_NULL, WLZ_ERR_PARAM_TYPE, WLZ_VTX_3_LENGTH, WLZ_VTX_3_SUB, and WlzErrorFromAlg().

◆ WlzKrigOSetPosSV2D()

WlzErrorNum WlzKrigOSetPosSV2D ( double *  posSV,
WlzKrigModelFn modelFn,
int  n,
WlzDVertex2 nbr,
WlzDVertex2  pos 
)

Computes the ordinary kriging position semi-variogram from the given neighbourhood vertices and the given position vertex.

Returns
Woolz error code. If all input parameters are valid then this will return WLZ_ERR_NONE.
Parameters
posSVValid \((n + 1)\) column vector for the position semi-variogram.
modelFnThe model value function.
nNumber of neighbourhood vertices.
nbrThe neighbourhood vertex positions.
posThe given position.

References _WlzKrigModelFn::fn, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_PARAM_NULL, WLZ_VTX_2_LENGTH, and WLZ_VTX_2_SUB.

Referenced by WlzCMeshMeshMeshProduct().

◆ WlzKrigOSetPosSV3D()

WlzErrorNum WlzKrigOSetPosSV3D ( double *  posSV,
WlzKrigModelFn modelFn,
int  n,
WlzDVertex3 nbr,
WlzDVertex3  pos 
)

Computes the ordinary kriging position semi-variogram from the given neighbourhood vertices and the given position vertex.

Returns
Woolz error code. If all input parameters are valid then this will return WLZ_ERR_NONE.
Parameters
posSVValid \((n + 1)\) column vector for the position semi-variogram.
modelFnThe model value function.
nNumber of neighbourhood vertices.
nbrThe neighbourhood vertex positions.
posThe given position.

References _WlzKrigModelFn::fn, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_PARAM_NULL, WLZ_VTX_3_LENGTH, and WLZ_VTX_3_SUB.

◆ WlzKrigOWeightsSolve()

WlzErrorNum WlzKrigOWeightsSolve ( AlgMatrix  modelSV,
double *  posSV,
int *  wSp,
double  eps 
)

Computes the ordinary kriging weights from the model and position semi-variograms.

Returns
Woolz error code.
Parameters
modelSVValid \((n + 1)\times(n + 1)\) matrix containing the model semi-variogram.
posSVValid \((n + 1)\) column vector containing the position semi-variogram and on return containing the weights.
wSpWorkspace for AlgMatrixLUBackSub() with space for modelSV.core->nR values.
epsEpsilon value used to test for position semi-variogram value zero.

References ALG_MATRIX_RECT, AlgMatrixLUBackSub(), _AlgMatrix::core, _AlgMatrixCore::nR, _AlgMatrixCore::type, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_ERR_PARAM_NULL, WLZ_ERR_PARAM_TYPE, and WlzErrorFromAlg().

Referenced by WlzCMeshMeshMeshProduct().

◆ WlzKrigReallocBuffers2D()

WlzErrorNum WlzKrigReallocBuffers2D ( WlzDVertex2 **  dstNbrPosBuf,
double **  dstPosSV,
int **  dstWSp,
AlgMatrix dstModelSV,
int *  dstMaxKrigBuf,
int  nNbrC,
int  nNbrL 
)

A convinience function for allocating and reallocating the buffers needed for 2D kriging. All given pointers must be valid and on the first call all pointer values (eg *dstNbrPosBuf) must be NULL.

Returns
Woolz error code.
Parameters
dstNbrPosBufDestination pointer for the neighbourhood position buffer.
dstPosSVDestination pointer for the position vector.
dstWSpDestination pointer for kriging matrix workspace.
dstModelSVDestination pointer for kriging model matrix.
dstMaxKrigBufDestination pointer for the maximum number of neighbours the buffers have been reallocated for.
nNbrCCurrent number of neighbours.
nNbrLLast number of neighbours.

References AlcRealloc(), ALG_MATRIX_RECT, AlgMatrixFree(), AlgMatrixNew(), WLZ_ERR_MEM_ALLOC, and WLZ_ERR_NONE.

Referenced by WlzCMeshMeshMeshProduct().

◆ WlzKrigReallocBuffers3D()

WlzErrorNum WlzKrigReallocBuffers3D ( WlzDVertex3 **  dstNbrPosBuf,
double **  dstPosSV,
int **  dstWSp,
AlgMatrix dstModelSV,
int *  dstMaxKrigBuf,
int  nNbrC,
int  nNbrL 
)

A convinience function for allocating and reallocating the buffers needed for 3D kriging. All given pointers must be valid and on the first call all pointer values (eg *dstNbrPosBuf) must be NULL.

Returns
Woolz error code.
Parameters
dstNbrPosBufDestination pointer for the neighbourhood position buffer.
dstPosSVDestination pointer for the position vector.
dstWSpDestination pointer for kriging matrix workspace.
dstModelSVDestination pointer for kriging model matrix.
dstMaxKrigBufDestination pointer for the maximum number of neighbours the buffers have been reallocated for.
nNbrCCurrent number of neighbours.
nNbrLLast number of neighbours.

References AlcRealloc(), ALG_MATRIX_RECT, AlgMatrixFree(), AlgMatrixNew(), WLZ_ERR_MEM_ALLOC, and WLZ_ERR_NONE.

◆ WlzRGBAToCompound()

WlzCompoundArray* WlzRGBAToCompound ( WlzObject obj,
WlzRGBAColorSpace  colSpc,
WlzErrorNum dstErr 
)

Convert a RGBA image to a compound object. The RGBA channels are at array indices 0,1,2,3 respectively and the sub-object grey types will be WLZ_GREY_UBYTE.

Returns
Compound array of rgba values
Parameters
objInput domain object with value type WLZ_GREY_RGBA
colSpcThe colour space.
dstErrDestination error ponyer, may be NULL.

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzDomain::p, _WlzObject::type, _WlzPlaneDomain::type, _WlzCoreValues::type, _WlzVoxelValues::type, _WlzObject::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_NONE, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_RGBA, WLZ_PLANEDOMAIN_DOMAIN, WLZ_VOXELVALUETABLE_GREY, WlzGreyTableIsTiled(), and WlzGreyTypeFromObj().

Referenced by WlzGauss2(), WlzRGBAGreyScale(), WlzRGBAGreyStats(), WlzRGBAImageArithmetic(), WlzRGBAMultiThreshold(), and WlzRGBAScalarBinaryOp().

◆ WlzCompoundToRGBA()

WlzObject* WlzCompoundToRGBA ( WlzCompoundArray cmpnd,
WlzRGBAColorSpace  colSpc,
WlzErrorNum dstErr 
)

Creates a WLZ_GREY_RGBA valued object from the given compound array. This is a static function which will always be called with valid parameters so they aren't checked. If all members of the compound array are empty then the returned object will be empty too.

Returns
New object with WLZ_GREY_RGBA values or possible an empty object.
Parameters
cmpndCompound array object.
colSpcThe colour space.
dstErrDestination error pointer may be NULL.

References _WlzCompoundArray::n, _WlzCompoundArray::o, _WlzObject::type, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_EMPTY_OBJ, WLZ_ERR_NONE, WLZ_ERR_OBJECT_DATA, WLZ_ERR_OBJECT_NULL, WLZ_ERR_OBJECT_TYPE, WLZ_ERR_PARAM_DATA, WLZ_RGBA_SPACE_CMY, WLZ_RGBA_SPACE_HSB, WLZ_RGBA_SPACE_RGB, and WlzMakeEmpty().

Referenced by WlzRGBAGreyScale(), WlzRGBAImageArithmetic(), and WlzRGBAScalarBinaryOp().

◆ WlzRGBAToModulus()

WlzObject* WlzRGBAToModulus ( WlzObject obj,
WlzErrorNum dstErr 
)

Calculate the modulus of the rgb values and return in an image of grey type WLZ_GREY_SHORT.

Returns
Grey-level object of modulus values
Parameters
objInput rgba object
dstErrerror return
Source:
WlzRGBAConvert.c

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzDomain::p, _WlzObject::type, _WlzPlaneDomain::type, _WlzVoxelValues::type, _WlzObject::values, _WlzValues::vox, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_NONE, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_RGBA, WLZ_PLANEDOMAIN_DOMAIN, WLZ_VOXELVALUETABLE_GREY, and WlzGreyTypeFromObj().

Referenced by WlzGetPatchTreeToDepth().

◆ WlzIndexToRGBA()

WlzObject* WlzIndexToRGBA ( WlzObject obj,
unsigned char  colormap[3][256],
WlzErrorNum dstErr 
)

Convert a grey-level woolz object to RGBA via a colourmap look-up table. Values are clamped to [0,255] and the LUT is assumed to be unsigned byte 3x256.

Returns
Woolz object
Parameters
objInput object to be converted
colormapColourmap array
dstErrError return
Source:
WlzRGBAConvert.c

References _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_3D_DOMAINOBJ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_NONE, WLZ_ERR_VALUES_NULL, WLZ_GREY_RGBA, WlzGreyTableTypeToGreyType(), and WlzMakeMain().

◆ WlzRGBAModGradient()

WlzObject* WlzRGBAModGradient ( WlzObject obj,
double  width,
WlzErrorNum dstErr 
)

Calculate the modulus of the rgb-level gradient at each point. The gradient images are calculated using WlzGauss2() with width parameter set to width. Note the modulus returned is the modulus of vector formed by the independent channels, i.e. take the modulus for each channel seperately then the modulus of the resultant vector.

Returns
Woolz object
Parameters
objInput rgba woolz object
widthwidth of gradient operator
dstErrerror return
Source:
WlzRGBAModGradient.c

References _WlzIntervalWSpace::colrmn, _WlzValues::core, _WlzGreyP::dbp, _WlzObject::domain, _WlzGreyP::flp, _WlzGreyP::inp, _WlzCompoundArray::o, _WlzGreyP::shp, _WlzGreyV::shv, _WlzPixelV::type, _WlzObject::type, _WlzCompoundArray::type, _WlzCoreValues::type, _WlzGreyWSpace::u_grintptr, _WlzGreyP::ubp, _WlzPixelV::v, _WlzValues::v, _WlzObject::values, WLZ_2D_DOMAINOBJ, WLZ_COMPOUND_ARR_1, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_DATA, WLZ_ERR_OBJECT_NULL, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_RAGR, WLZ_GREY_UBYTE, WlzEndGreyScan(), WlzFreeObj(), WlzGauss2(), WlzGreyModGradient(), WlzGreyTableTypeToGreyType(), WlzGreyValueTableType(), WlzInitGreyScan(), WlzMakeMain(), WlzNewValueTb(), and WlzNextGreyInterval().

Referenced by WlzGreyModGradient().

◆ WlzRGBAPixelValue()

double WlzRGBAPixelValue ( WlzPixelV  pixVal,
WlzRGBAColorChannel  chan,
WlzErrorNum dstErr 
)

Calculate the pixel value for a given channel. For grey-pixel types the colour channel values are set equal to the grey value i.e. the pixel is assumed to be (g,g,g). If the grey-channel is requested of a colour pixel the modulus is returned. For colour pixels the error return value is -1, for grey pixels the error return should be tested since all values are valid (except grey-type WlzUByte). Hue and saturation are zero for grey-pixel types.

Returns
requested value of pixel
Parameters
pixValinput pixel value structure
chanrequested pixel channel
dstErrerror destination
Source:
WlzRGBAPixelUtils.c

References _WlzGreyV::dbv, _WlzGreyV::flv, _WlzGreyV::inv, _WlzGreyV::rgbv, _WlzGreyV::shv, _WlzPixelV::type, _WlzGreyV::ubv, _WlzPixelV::v, WLZ_ERR_GREY_DATA, WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_GREY_BIT, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WLZ_RGBA_BLUE_GET, WLZ_RGBA_CHANNEL_BLUE, WLZ_RGBA_CHANNEL_BRIGHTNESS, WLZ_RGBA_CHANNEL_CYAN, WLZ_RGBA_CHANNEL_GREEN, WLZ_RGBA_CHANNEL_GREY, WLZ_RGBA_CHANNEL_HUE, WLZ_RGBA_CHANNEL_MAGENTA, WLZ_RGBA_CHANNEL_RED, WLZ_RGBA_CHANNEL_SATURATION, WLZ_RGBA_CHANNEL_YELLOW, WLZ_RGBA_GREEN_GET, WLZ_RGBA_MODULUS, WLZ_RGBA_RED_GET, and WlzRGBAConvertRGBToHSV_UBYTENormalised().

Referenced by WlzRGBAEllipsoidThreshold(), and WlzRGBASliceThreshold().

◆ WlzRGBAModulusRange()

◆ WlzTiledValuesMode()

int WlzTiledValuesMode ( WlzTiledValues tv,
WlzErrorNum dstErr 
)

Determines how the tiled values of a tiles value table may be used. If memory mapping is in use then the mode in which the file (containing the memory mapped values) was opened determines the modes in which the tiled values can be accessed. Inappropriate access (eg attempting to change a grey value in a memory mapped tiled values table that was opened for read only) will generate a memory fault. The returned value is a bit mask in which WLZ_IOFLAGS_READ will be set iff grey values can be read and WLZ_IOFLAGS_WRITE will be set iff the grey values can be written to (ie modified).

Returns
Flags specifying how the value table may be used.
Parameters
tvThe given tiled values.
dstErrDestination error pointer, may be NULL.

References _WlzTiledValues::fd, _WlzTiledValues::tiles, _WlzTiledValues::type, _WlzGreyP::v, WLZ_ERR_FILE_OPEN, WLZ_ERR_NONE, WLZ_ERR_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_TAB_TILED, WLZ_IOFLAGS_NONE, WLZ_IOFLAGS_READ, WLZ_IOFLAGS_WRITE, and WlzGreyTableIsTiled().

Referenced by WlzMakeTiledValueBuffer().

◆ WlzTiledValueBufferFlush()

◆ WlzTiledValueBufferFill()

◆ WlzTiledValuesCopyLine()

void WlzTiledValuesCopyLine ( WlzTiledValues tv,
WlzGreyP  gP,
int  pl,
int  ln,
int  kl1,
int  lkl 
)

Copies a single line of grey values to a tiled value table. This is done within the valid tiles which may lie outside of an object's domain, so care should be used when calling this function. All the given coordinate values are with respect to the tiled value table's origin. If the tiled values have a number of values per element greater than one then the given buffer must have too.

Parameters
tvGiven tiled value table which must be valid.
gPSource grey pointer to grey values of the same type as the tiled value table.
plPlane coordinate.
lnLine coordinate.
kl1First column coordinate.
lklLast column coordinate.

References ALG_MAX, ALG_MIN, _WlzTiledValues::dim, _WlzTiledValues::indices, _WlzTiledValues::kol1, _WlzTiledValues::lastkl, _WlzTiledValues::lastln, _WlzTiledValues::lastpl, _WlzTiledValues::line1, _WlzTiledValues::nIdx, _WlzTiledValues::numTiles, _WlzTiledValues::plane1, _WlzTiledValues::tiles, _WlzTiledValues::tileSz, _WlzTiledValues::tileWidth, _WlzTiledValues::type, _WlzTiledValues::vpe, _WlzIVertex3::vtX, _WlzIVertex3::vtY, _WlzIVertex3::vtZ, WLZ_GREY_TABLE_TO_GREY_TYPE, and WlzValueCopyGreyToGrey().

Referenced by WlzFromArray1D().

◆ WlzTiledValuesValPerElm()

int WlzTiledValuesValPerElm ( WlzTiledValues tVal)

Computes the number of values per pixel/voxel for a tiled value table.

Returns
Number of values per pixel/voxel.
            The number of values per pixel/voxel which is.
\( \prod_i^\textrm{vRank}{\textrm{vDim}[i]} \) (value 1 when vRank = 0). Both WlzTiledValues::vRank and WlzTiledValues::vDim must have been set before calling this function. See also WlzTiledValues::vpe .
Parameters
tValGiven tiled value table which must be valid with respect to it's value rank and value dimension.

References _WlzTiledValues::vDim, and _WlzTiledValues::vRank.

Referenced by WlzMakeTiledValuesObj2D(), and WlzMakeTiledValuesObj3D().

◆ WlzGreyValueTableType()

◆ WlzGreyTableTypeToGreyType()

◆ WlzGreyTableTypeToTableType()

WlzGreyTableType WlzGreyTableTypeToTableType ( WlzObjectType  gTabType,
WlzErrorNum dstErr 
)

Computes the type of table from a grey table type. This function is equivalent to the macro WLZ_GREY_TABLE_TO_TABLE_TYPE but with range checks.

Returns
Type of grey value. The return value may not be set on error.
Parameters
gTabTypeThe basic table type.
dstErrDestination error pointer, may be NULL.

References WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_INTL, WLZ_GREY_TAB_RAGR, WLZ_GREY_TAB_RECT, WLZ_GREY_TAB_TILED, WLZ_GREY_TABLE_TO_GREY_TYPE, WLZ_GREY_TABLE_TO_RANK, WLZ_GREY_TABLE_TO_TABLE_TYPE, and WLZ_GREY_UBYTE.

Referenced by WlzGetBackground(), WlzGreyValueMakeWSp(), WlzInitGreyWSpace(), WlzMakeIntervalValues(), WlzMakeRectValueTb(), WlzMakeValueTb(), WlzNewValueTb(), WlzSetBackground(), WlzShiftValues(), and WlzStringFromObjValuesType().

◆ WlzGreyTableTypeToRank()

int WlzGreyTableTypeToRank ( WlzObjectType  gTabType,
WlzErrorNum dstErr 
)

Computes the rank from a grey table type. This function is equivalent to the macro WLZ_GREY_TABLE_TO_RANK but with range checks.

Returns
Grey value rank. The return value will be -1 on error.
Parameters
gTabTypeThe basic table type.
dstErrDestination error pointer, may be NULL.

References WLZ_ERR_GREY_TYPE, WLZ_ERR_NONE, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_INTL, WLZ_GREY_TAB_RAGR, WLZ_GREY_TAB_RECT, WLZ_GREY_TAB_TILED, WLZ_GREY_TABLE_TO_GREY_TYPE, WLZ_GREY_TABLE_TO_RANK, WLZ_GREY_TABLE_TO_TABLE_TYPE, and WLZ_GREY_UBYTE.

Referenced by WlzMakeTiledValuesTiles().

◆ WlzGreyTableIsTiled()

◆ WlzGreyTypeFromObj()

WlzGreyType WlzGreyTypeFromObj ( WlzObject obj,
WlzErrorNum dstErr 
)

◆ WlzVozelSz()

WlzDVertex3 WlzVozelSz ( WlzObject obj,
WlzErrorNum dstErr 
)

Gets the given 3D domain objects voxel size.

Returns
Voxel size.
Parameters
objGiven 3D domain object.
dstErrDestination pointer for error code, may be NULL.

References _WlzDomain::core, _WlzObject::domain, _WlzDomain::p, _WlzCoreDomain::type, _WlzPlaneDomain::voxel_size, _WlzDVertex3::vtX, _WlzDVertex3::vtY, _WlzDVertex3::vtZ, WLZ_ERR_DOMAIN_NULL, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_NONE, WLZ_ERR_OBJECT_NULL, and WLZ_PLANEDOMAIN_DOMAIN.

◆ WlzIndexedValueGet()

◆ WlzIndexedValueExtGet()

void* WlzIndexedValueExtGet ( WlzIndexedValues ixv,
int  idx 
)

Gets a pointer to the valuetable entry for the given index. The value table is extended as required so that there should always be a valid entry unless memory allocation fails. See also WlzIndexedValueGet().

Returns
Value pointer which may be null on error.
Parameters
ixvIndexed value table.
idxGiven index.

References AlcVectorExtendAndGet(), and _WlzIndexedValues::values.

Referenced by WlzBasisFnSetCMesh2D(), WlzBasisFnSetCMesh3D(), WlzCMeshDistance2D(), WlzCMeshDistance3D(), and WlzIndexedValuesSet().

◆ WlzIndexedValuesSet()

WlzErrorNum WlzIndexedValuesSet ( WlzObject obj,
size_t  cnt,
void *  val 
)

◆ WlzValueSetInt()

void WlzValueSetInt ( int *  vec,
int  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is int.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzSnapFit(), and WlzValueSetGrey().

◆ WlzValueSetShort()

void WlzValueSetShort ( short *  vec,
short  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is short.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzValueSetGrey().

◆ WlzValueSetUByte()

void WlzValueSetUByte ( WlzUByte vec,
WlzUByte  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is WlzUByte.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzContourGrdObj2D(), and WlzValueSetGrey().

◆ WlzValueSetFloat()

void WlzValueSetFloat ( float *  vec,
float  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is float.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzValueSetGrey().

◆ WlzValueSetDouble()

void WlzValueSetDouble ( double *  vec,
double  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is double.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzBSplineFromVertices(), WlzCMeshFMarNodes2D(), WlzCMeshFMarNodes3D(), WlzContourGrdObj2D(), and WlzValueSetGrey().

◆ WlzValueSetRGBA()

void WlzValueSetRGBA ( WlzUInt vec,
WlzUInt  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is rgb-alpha.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

Referenced by WlzValueSetGrey().

◆ WlzValueSetDVertex()

void WlzValueSetDVertex ( WlzDVertex2 vec,
WlzDVertex2  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is WlzDVertex2.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

◆ WlzValueSetFVertex()

void WlzValueSetFVertex ( WlzFVertex2 vec,
WlzFVertex2  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is WlzFVertex2.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

◆ WlzValueSetIVertex()

void WlzValueSetIVertex ( WlzIVertex2 vec,
WlzIVertex2  value,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is WlzIVertex2.

Returns
void
Parameters
vecVector who's elements are to be set.
valueValue to use when setting the vector's elements.
countNumber of vector elements to be set.

References _WlzIVertex2::vtX, and _WlzIVertex2::vtY.

◆ WlzValueSetGrey()

void WlzValueSetGrey ( WlzGreyP  vec,
size_t  vecOff,
WlzGreyV  value,
WlzGreyType  gType,
size_t  count 
)

Sets the elements of the given vector to a given value, where the vector type is any one of int, short, WlzUByte, float, double.

Returns
void
Parameters
vecVector who's elements are to be set.
vecOffOffset from vec.
valueValue to use when setting the vector's elements.
gTypeGrey type, ie: int, short....
countNumber of vector elements to be set.

References _WlzGreyP::dbp, _WlzGreyV::dbv, _WlzGreyP::flp, _WlzGreyV::flv, _WlzGreyP::inp, _WlzGreyV::inv, _WlzGreyP::rgbp, _WlzGreyV::rgbv, _WlzGreyP::shp, _WlzGreyV::shv, _WlzGreyP::ubp, _WlzGreyV::ubv, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_UBYTE, WlzValueSetDouble(), WlzValueSetFloat(), WlzValueSetInt(), WlzValueSetRGBA(), WlzValueSetShort(), and WlzValueSetUByte().

Referenced by WlzMakeTiledValuesTiles().

◆ WlzValueSetGreyP()

WlzGreyP WlzValueSetGreyP ( WlzGreyP  base,
WlzGreyType  gType,
size_t  off 
)

Sets a grey pointer using the given base grey pointer and an offset.

Returns
New grey pointer.
Parameters
baseBase grey pointer.
gTypeGrey type.
offOffset.

References _WlzGreyP::dbp, _WlzGreyP::flp, _WlzGreyP::inp, _WlzGreyP::rgbp, _WlzGreyP::shp, _WlzGreyP::ubp, WLZ_GREY_DOUBLE, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, and WLZ_GREY_UBYTE.

Referenced by WlzCutObjToValBox3D().

◆ WlzValueClampIntToShort()

void WlzValueClampIntToShort ( int *  vec,
size_t  count 
)

Clamps a vector of int values to the limits of short.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampIntToUByte()

void WlzValueClampIntToUByte ( int *  vec,
size_t  count 
)

Clamps a vector of int values to the limits of WlzUByte.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampShortToUByte()

void WlzValueClampShortToUByte ( short *  vec,
size_t  count 
)

Clamps a vector of short values to the limits of WlzUByte.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampDoubleToInt()

void WlzValueClampDoubleToInt ( double *  vec,
size_t  count 
)

Clamps a vector of double values to the limits of int.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampDoubleToShort()

void WlzValueClampDoubleToShort ( double *  vec,
size_t  count 
)

Clamps a vector of double values to the limits of short.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampDoubleToUByte()

void WlzValueClampDoubleToUByte ( double *  vec,
size_t  count 
)

Clamps a vector of double values to the limits of WlzUByte.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampDoubleToRGBA()

void WlzValueClampDoubleToRGBA ( double *  vec,
size_t  count 
)

Clamps a vector of double values to the limits of RGBA.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

◆ WlzValueClampDoubleToFloat()

void WlzValueClampDoubleToFloat ( double *  vec,
size_t  count 
)

Clamps a vector of double values to the limits of float.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampFloatToInt()

void WlzValueClampFloatToInt ( float *  vec,
size_t  count 
)

Clamps a vector of float values to the limits of int.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampFloatToShort()

void WlzValueClampFloatToShort ( float *  vec,
size_t  count 
)

Clamps a vector of float values to the limits of short.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampFloatToUByte()

void WlzValueClampFloatToUByte ( float *  vec,
size_t  count 
)

Clamps a vector of float values to the limits of WlzUByte.

Returns
void
Parameters
vecVector who's elements are to be clamped.
countNumber of vector elements.

Referenced by WlzValueConvertPixel().

◆ WlzValueClampIntIntoShort()

void WlzValueClampIntIntoShort ( short *  dst,
int *  src,
size_t  count 
)

Clamps a vector of int values into a vector of short values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampIntIntoUByte()

void WlzValueClampIntIntoUByte ( WlzUByte dst,
int *  src,
size_t  count 
)

Clamps a vector of nt values into a vector of WlzUByte values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampShortIntoUByte()

void WlzValueClampShortIntoUByte ( WlzUByte dst,
short *  src,
size_t  count 
)

Clamps a vector of short values into a vector of WlzUByte values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampFloatIntoInt()

void WlzValueClampFloatIntoInt ( int *  dst,
float *  src,
size_t  count 
)

Clamps a vector of float values into a vector of int values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_NINT.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampFloatIntoShort()

void WlzValueClampFloatIntoShort ( short *  dst,
float *  src,
size_t  count 
)

Clamps a vector of float values into a vector of short values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_NINT.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampFloatIntoUByte()

void WlzValueClampFloatIntoUByte ( WlzUByte dst,
float *  src,
size_t  count 
)

Clamps a vector of float values into a vector of WlzUByte values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampDoubleIntoInt()

void WlzValueClampDoubleIntoInt ( int *  dst,
double *  src,
size_t  count 
)

Clamps a vector of into double values into a vector of int values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_NINT.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampDoubleIntoShort()

void WlzValueClampDoubleIntoShort ( short *  dst,
double *  src,
size_t  count 
)

Clamps a vector of double values into a vector of short values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_NINT.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampDoubleIntoUByte()

void WlzValueClampDoubleIntoUByte ( WlzUByte dst,
double *  src,
size_t  count 
)

Clamps a vector of double values into a vector of WlzUByte values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampDoubleIntoFloat()

void WlzValueClampDoubleIntoFloat ( float *  dst,
double *  src,
size_t  count 
)

Clamps a vector of double values into a vector of float values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

Referenced by WlzValueClampGreyIntoGrey().

◆ WlzValueClampIntIntoRGBA()

void WlzValueClampIntIntoRGBA ( WlzUInt dst,
int *  src,
size_t  count 
)

Clamps a vector of int values into a vector of RGBA values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_RGBA_RGBA_SET.

Referenced by WlzValueClampGreyIntoGrey(), and WlzValueCopyIntToRGBA().

◆ WlzValueClampShortIntoRGBA()

void WlzValueClampShortIntoRGBA ( WlzUInt dst,
short *  src,
size_t  count 
)

Clamps a vector of short values into a vector of RGBA values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_RGBA_RGBA_SET.

Referenced by WlzValueClampGreyIntoGrey(), and WlzValueCopyShortToRGBA().

◆ WlzValueClampFloatIntoRGBA()

void WlzValueClampFloatIntoRGBA ( WlzUInt dst,
float *  src,
size_t  count 
)

Clamps a vector of float values into a vector of RGBA values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_RGBA_RGBA_SET.

Referenced by WlzValueClampGreyIntoGrey(), and WlzValueCopyFloatToRGBA().

◆ WlzValueClampDoubleIntoRGBA()

void WlzValueClampDoubleIntoRGBA ( WlzUInt dst,
double *  src,
size_t  count 
)

Clamps a vector of double values into a vector of RGBA values.

Returns
void
Parameters
dstDestination vector.
srcSource vector.
countNumber of vector elements.

References WLZ_RGBA_RGBA_SET.

Referenced by WlzValueClampGreyIntoGrey(), and WlzValueCopyDoubleToRGBA().