Adds Edge-Preserving Filter (#1690)
* Module EPF - Edge-Preserving Filter added
* Changed name from template to epf
* Removed clang-format file
* Added header Files. Eliminated showWindow function. Used CommandLineParser.
* Moved filter from epf module to ximgproc
* Removed header files from sample
* Minor bug fix in demo. Pointers in demo removed.
* Pointers removed. InputArray/OutputArray added
* License header added
* License header from sample file removed
* Unit test for performance added
* Replaced manual mean computation with cv::mean
* Beautified code via clang-format and https://raw.githubusercontent.com/opencv/opencv_contrib/master/modules/cvv/.clang-format
* Merged historic if... else if statement into one if statement
* Trailing whitespace removed and .. changed into .
* Tabs replaced with 4 spaces.
* Removed subwindow = src(roi);
* Moved type test to beginning of code
* Removed indentation from namespace and added //! @}
* Added name to header
* git cleanup introduced some errors fixed here
* Changed path testdata/perf/320x260.png to perf/320x260.png
* Fixed warning declaration of 'subwindow1' hides previous local declaration
* Fixed warning 'const' qualifier on reference type 'cv::InputArray' (aka 'const cv::_InputArray &') has no effect
* Accuracy test added/
* Renamed void edgepreservingFilter to void edgePreservingFilter
Now the filter natively supports StereoBM and StereoSGBM with no
parameter tuning required. Also, now user won't need to set the ROI and
the right matcher parameters manually, it is all done in the respective
convenience factory method based on the left matcher instance. Tutorial
was added to clarify the provided example of use.
DisparityWLSFilter demonstrated the best results, so I removed all the other
filters. Quality was significantly improved by adding confidence support
to the filter (left-right consistency + penalty for areas near depth discontinuities).
Filter was optimized using parallel_for_ and HAL intrinsics. Demo application was
rewritten for better compliance with OpenCV standards. Added accuracy and
performance tests. Documentation was added, as well as references to the
original papers.