From: <kin...@us...> - 2011-09-25 03:09:30
|
Revision: 5123 http://teem.svn.sourceforge.net/teem/?rev=5123&view=rev Author: kindlmann Date: 2011-09-25 03:09:24 +0000 (Sun, 25 Sep 2011) Log Message: ----------- added support for nrrdResampleNonExistent via -ne Modified Paths: -------------- teem/trunk/src/unrrdu/resample.c Modified: teem/trunk/src/unrrdu/resample.c =================================================================== --- teem/trunk/src/unrrdu/resample.c 2011-09-25 03:04:08 UTC (rev 5122) +++ teem/trunk/src/unrrdu/resample.c 2011-09-25 03:09:24 UTC (rev 5123) @@ -46,8 +46,9 @@ hestOpt *opt = NULL; char *out, *err; Nrrd *nin, *nout; - int type, bb, pret, norenorm, older, E, defaultCenter, verbose, - overrideCenter, minSet=AIR_FALSE, maxSet=AIR_FALSE, offSet=AIR_FALSE; + int type, bb, pret, norenorm, neb, older, E, defaultCenter, + verbose, overrideCenter, minSet=AIR_FALSE, maxSet=AIR_FALSE, + offSet=AIR_FALSE; unsigned int scaleLen, ai, samplesOut, minLen, maxLen, offLen; airArray *mop; float *scale; @@ -124,6 +125,16 @@ "needed to avoid \"grating\" on non-integral " "down-sampling. Disabling the renormalization is needed for " "correct results with artificially narrow kernels. "); + hestOptAdd(&opt, "ne,nonexistent", "behavior", airTypeEnum, 1, 1, + &neb, "noop", + "When resampling floating-point values, how to handle " + "non-existent values within kernel support:\n " + "\b\bo \"noop\": do nothing; let them pollute result\n " + "\b\bo \"renorm\": ignore them and renormalize weights of " + "existent values\n " + "\b\bo \"wght\": ignore them and simply use weights of " + "existent values", + NULL, nrrdResampleNonExistent); hestOptAdd(&opt, "b,boundary", "behavior", airTypeEnum, 1, 1, &bb, "bleed", "How to handle samples beyond the input bounds:\n " "\b\bo \"pad\": use some specified value\n " @@ -300,6 +311,7 @@ if (!E) E |= nrrdResampleTypeOutSet(rsmc, type); if (!E) E |= nrrdResamplePadValueSet(rsmc, padVal); if (!E) E |= nrrdResampleRenormalizeSet(rsmc, !norenorm); + if (!E) E |= nrrdResampleNonExistentSet(rsmc, neb); if (!E) E |= nrrdResampleExecute(rsmc, nout); if (E) { airMopAdd(mop, err = biffGetDone(NRRD), airFree, airMopAlways); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |