Woolz Image Processing
Version 1.7.5
|
Recursive filters for Woolz, these are also known as Deriche and infinite impulse responce (IIR) filters. More...
Functions | |
void | WlzRsvFilterFreeFilter (WlzRsvFilter *ftr) |
Free a recursive filter. More... | |
WlzRsvFilter * | WlzRsvFilterMakeFilter (WlzRsvFilterName name, double prm, WlzErrorNum *dstErr) |
Creates a new recursive filter. More... | |
WlzObject * | WlzRsvFilterObj (WlzObject *srcObj, WlzRsvFilter *ftr, int actionMsk, WlzErrorNum *dstErr) |
Applies a recursive filter to the given object. More... | |
WlzErrorNum | WlzRsvFilterBuffer (WlzRsvFilter *ftr, double *datBuf, double *tmpBuf0, double *tmpBuf1, int bufSz) |
Filters a given buffer using an IIR filter defined by the filter coefficients. More... | |
Recursive filters for Woolz, these are also known as Deriche and infinite impulse responce (IIR) filters.
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.
void WlzRsvFilterFreeFilter | ( | WlzRsvFilter * | ftr | ) |
Free a recursive filter.
ftr | Filter to free. |
References AlcFree().
Referenced by WlzCannyDeriche(), WlzContourGrdObj2D(), WlzHistogramRsvGauss(), WlzNMSuppress(), and WlzRsvFilterBuffer().
WlzRsvFilter* WlzRsvFilterMakeFilter | ( | WlzRsvFilterName | name, |
double | prm, | ||
WlzErrorNum * | dstErr | ||
) |
Creates a new recursive filter.
name | Name of filter. |
prm | Parameter is alpha for Deriche's operators and sigma for Gaussians, must be \(\geq\) 0.0. |
dstErr | Destination error pointer, may be null. |
References _WlzRsvFilter::a, AlcCalloc(), _WlzRsvFilter::b, _WlzRsvFilter::c, _WlzRsvFilter::name, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_PARAM_DATA, WLZ_RSVFILTER_NAME_DERICHE_0, WLZ_RSVFILTER_NAME_DERICHE_1, WLZ_RSVFILTER_NAME_DERICHE_2, WLZ_RSVFILTER_NAME_GAUSS_0, WLZ_RSVFILTER_NAME_GAUSS_1, WLZ_RSVFILTER_NAME_GAUSS_2, and WLZ_RSVFILTER_NAME_NONE.
Referenced by WlzCannyDeriche(), WlzContourGrdObj2D(), WlzHistogramRsvGauss(), WlzNMSuppress(), and WlzRsvFilterBuffer().
WlzObject* WlzRsvFilterObj | ( | WlzObject * | srcObj, |
WlzRsvFilter * | ftr, | ||
int | actionMsk, | ||
WlzErrorNum * | dstErr | ||
) |
Applies a recursive filter to the given object.
srcObj | Given object. |
ftr | Recursive filter. |
actionMsk | Action mask. |
dstErr | Destination error pointer, may be null. |
References _WlzRsvFilter::a, _WlzRsvFilter::b, _WlzRsvFilter::c, _WlzValues::core, _WlzDomain::core, _WlzObject::domain, _WlzObject::type, _WlzCoreValues::type, _WlzObject::values, 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_VALUES_NULL, WLZ_ERR_VALUES_TYPE, WLZ_RSVFILTER_ACTION_X, WLZ_RSVFILTER_ACTION_Y, WLZ_RSVFILTER_ACTION_Z, WlzCopyValues(), WlzFreeObj(), WlzGreyTableIsTiled(), WlzMakeEmpty(), WlzMakeMain(), and WlzNewGrey().
Referenced by WlzContourGrdObj2D(), and WlzRsvFilterBuffer().
WlzErrorNum WlzRsvFilterBuffer | ( | WlzRsvFilter * | ftr, |
double * | datBuf, | ||
double * | tmpBuf0, | ||
double * | tmpBuf1, | ||
int | bufSz | ||
) |
Filters a given buffer using an IIR filter defined by the filter coefficients.
ftr | The filter. |
datBuf | The data buffer to be filtered with bufSz elements. |
tmpBuf0 | Temporary buffer with at least dataSz elements. |
tmpBuf1 | Temporary buffer with at least dataSz elements. |
bufSz | Number of data in buffer. |
References _WlzRsvFilter::a, Alc2Free(), Alc3Free(), ALC_ER_NONE, AlcBit2Malloc(), AlcBit3Malloc(), AlcDouble2Malloc(), AlcDouble3Malloc(), AlcFree(), AlcMalloc(), _WlzRsvFilter::b, _WlzRsvFilter::c, _WlzValues::core, _WlzDomain::core, _WlzGreyP::dbp, _WlzObject::domain, _WlzPlaneDomain::domains, getopt(), _WlzDomain::i, _WlzIntervalDomain::kol1, _WlzPlaneDomain::kol1, _WlzIntervalDomain::lastkl, _WlzPlaneDomain::lastkl, _WlzPlaneDomain::lastln, _WlzPlaneDomain::lastpl, _WlzIntervalWSpace::lftpos, _WlzIntervalDomain::line1, _WlzPlaneDomain::line1, _WlzIntervalWSpace::linpos, main(), _WlzIntervalWSpace::nwlpos, optarg, opterr, _WlzDomain::p, _WlzGreyWSpace::pixeltype, _WlzPlaneDomain::plane1, _WlzObject::plist, _WlzIntervalWSpace::rgtpos, _WlzObject::type, _WlzCoreDomain::type, _WlzCoreValues::type, _WlzVoxelValues::type, _WlzGreyWSpace::u_grintptr, _WlzValues::v, _WlzObject::values, _WlzVoxelValues::values, _WlzValues::vox, _WlzIVertex2::vtX, _WlzIVertex3::vtX, _WlzIVertex2::vtY, _WlzIVertex3::vtY, _WlzIVertex3::vtZ, WLZ_2D_DOMAINOBJ, WLZ_ERR_DOMAIN_DATA, WLZ_ERR_DOMAIN_TYPE, WLZ_ERR_EOO, WLZ_ERR_GREY_TYPE, WLZ_ERR_MEM_ALLOC, WLZ_ERR_NONE, WLZ_ERR_PARAM_NULL, WLZ_ERR_VALUES_TYPE, WLZ_GREY_DOUBLE, WLZ_GREY_ERROR, WLZ_GREY_FLOAT, WLZ_GREY_INT, WLZ_GREY_RGBA, WLZ_GREY_SHORT, WLZ_GREY_TAB_RAGR, WLZ_GREY_UBYTE, WLZ_INTERVALDOMAIN_INTVL, WLZ_INTERVALDOMAIN_RECT, WLZ_PLANEDOMAIN_DOMAIN, WLZ_RASTERDIR_DLIC, WLZ_RASTERDIR_ILIC, WLZ_RSVFILTER_ACTION_NONE, WLZ_RSVFILTER_ACTION_X, WLZ_RSVFILTER_ACTION_Y, WLZ_RSVFILTER_ACTION_Z, WLZ_RSVFILTER_NAME_DERICHE_0, WLZ_RSVFILTER_NAME_DERICHE_1, WLZ_RSVFILTER_NAME_DERICHE_2, WLZ_RSVFILTER_NAME_GAUSS_0, WLZ_RSVFILTER_NAME_GAUSS_1, WLZ_RSVFILTER_NAME_GAUSS_2, WLZ_VOXELVALUETABLE_GREY, WlzAssignObject(), WlzAssignValues(), WlzBitLnSetItv(), WlzCopyObject(), WlzFreeObj(), WlzFreeVoxelValueTb(), WlzGetBackground(), WlzGreyTableTypeToGreyType(), WlzGreyTableTypeToTableType(), WlzGreyValueTableType(), WlzInitGreyRasterScan(), WlzInitGreyScan(), WlzMakeMain(), WlzMakeVoxelValueTb(), WlzNewValueTb(), WlzNextGreyInterval(), WlzReadObj(), WlzRsvFilterFreeFilter(), WlzRsvFilterMakeFilter(), WlzRsvFilterObj(), WlzStringFromErrorNum(), WlzValueClampGreyIntoGrey(), WlzValueCopyGreyToGrey(), WlzValueSetUByte(), and WlzWriteObj().
Referenced by WlzHistogramRsvFilter().