Smoothing application enhancement
Summary
Some modifications of the Smoothing application. In particular the Gaussian mode now has two additional parameters : type.gaussian.maxerror
and type.gaussian.maxwidth
. These parameters were available in the ITK filter, but were not exposed in the application
Closes #1961 (closed)
Implementation Details
Applications
Smoothing :
- new parameter
type.gaussian.maxerror
: The algorithm will size the discrete kernel so that the error resulting from truncation of the kernel is no greater thantype.gaussian.maxerror
- new parameter
type.gaussian.maxwidth
: Set the kernel to be no wider than maxwidth pixels, even iftype.gaussian.maxerror
demands it. - the radius parameter has been renamed into stdev (because this is what it is, see the TODO in code)
- Some modernization (auto, RegisterPipeline())
FastNLMeans :
- Some modernization (auto, RegisterPipeline())
Tests
The tests for the Smoothing application have been updated:
- New test for the Gaussian mode (there was no test for this mode)
- New test for the Anisotropic mode (there was no test for this mode). Note that I needed to set a tolerance value for this test (1e-6), because the result were different on windows 8 (x86). The differences are probably caused by numerical error, and we can't do much about it anyway because we are using an ITK filter.
- The
apTvUtSmoothingTest_InXML
now depends on theapTvUtSmoothingTest_OutXML
test, instead of using a stored baseline. - The
apTvUtSmoothingTest
has been removed, there is no need to test 3 times themean
mode with the same parameters. (see InXML and OUTXML tests).
Copyright
The copyright owner is CNES and has signed the ORFEO ToolBox Contributor License Agreement.
Check before merging:
- All discussions are resolved
- At least 2
votes from core developers, no vote. - The feature branch is (reasonably) up-to-date with the base branch
- Dashboard is green
- Copyright owner has signed the ORFEO ToolBox Contributor License Agreement
- Optionally, run
git diff develop... -U0 --no-color | clang-format-diff.py -p1 -i
on latest changes and commit
Merge request reports
Activity
changed milestone to %7.1.0
added feature refactoring labels
assigned to @ctraizet
added 1 commit
- 877e4898 - BUG: add tolerance on the anisotropic smoothing test
Works fine on my superbuild (Ubuntu 18.04). I tried to find some references on the algorithm, because it's not so simple to understand the parameters. In my example (extract of a PHR image), a greater maxerror (0.5 instead of 0.01) produced to a sharper image... Maybe the doc should reference ITK's doc for this kind of filters.
@ytanguy I added some reference to the ITK filters and to the papers of the algorithm
I also added reference to the new NL means application (and reference to Smoothing in NL means)
Edited by Cédric Traizetadded 1 commit
- 03495bd7 - DOC: add references to the paper of the algorithms and to the ITK filters
added 67 commits
-
03495bd7...a9340fdf - 60 commits from branch
develop
- 89ab63f2 - DOC: rename mode.gaussian.radius parameter into mode.gaussian.stdev
- 07b601e9 - ENH: added parameters for maximum error and maximum kernel width in Smoothing
- 566a195b - ENH: updated test for the Smoothing application
- d47e9321 - ENH: some code modernization
- 7d27b411 - DOC: fix error in documentation
- 893bff1a - BUG: add tolerance on the anisotropic smoothing test
- c0f61f42 - DOC: add references to the paper of the algorithms and to the ITK filters
Toggle commit list-
03495bd7...a9340fdf - 60 commits from branch
mentioned in commit f6d4e7bb
Ok thank you @ctraizet !
mentioned in issue #2036 (closed)