The Fast Bilateral Filter (#1819)
PR is created by: berak <px1704@web.de>
based on work https://github.com/opencv/opencv_contrib/pull/1317
* fbs_filter v1.0 has been contributed
* use boost unordered_map
* add brief description for fbs_filter
* fix format
* fix channels bug
* modify doc for fbs_filter
* check c++ 11
* asDiagonal -> diagonal
* rosolve warning
* fix eigen3 dependency
* Eigen/Core
* test HEAV_EIGEN
* setZero bug
* unordered_map test
* fix macro bug
* fix boost not found
* fix eigen macro bug
* fix eigen macro bug
* fix eigen macro bug
* fix eigen macro bug
* add test file
* fix test macro
* fix test macro
* add test
* add test
* add sample colorize
* fix macro
* fix colorize.cpp
* fix colorize.cpp
* fix colorize.cpp
* fix colorize.cpp
* add fbs filter demo
* add fbs filter demo
* add fbs filter demo
* use fgsfilter for guess
* add parameter num_iter and max_tol
* add a option for colorize sample
* add bibtex
* add bibtex
* fix a colorize demo bug
* size optimize
* taking over the fast bilateral solver
* taking over the fast bilateral solver
* try to fix test_fbs_filter
* missed a bib bracket
* if the src has odd number of height, access error happens
* it could happen on width, too
* check both dst and src range in both width and height
original commit: 7294ae0f17
* KinFu demo: idle mode added
* undistort added
* KinFu demo: depth recorder added
* TSDFVolume gets voxelSize, voxelSizeInv, truncDist members; decorative fixes
* TSDFVolumeGPU::integrate(): host code compiles
* TSDFVolume: truncDist fixed
* TSDFVolume::integrate(): initial OCL version is done
* TSDFVolume::integrate(): OCL: minor fixes
* kinfu: small fixes
* TSDFVolume::raycast(): initial GPU version is done
* USE_INTRINSICS directive for centralized enable/disable opt. code
* TSDF Volume supports 3 different sizes/resolutions on each dimension
* TSDFVolume: serviceMembers moved to parent class
* TSDFVolumeGPU: mem order changed, gave perf boost 4x
* Frame: fixed UMat as InputArray; TSDF: comments, TODOs, minor fixes
* Frame::getPointsNormals(); minors
* FrameGPU: initial version (not working)
* minor
* FrameGPU: several fixes
* added OCL "fast" options
* ICP OCL: initial slow version is done (host-side reduce)
* ICP OCL: reduce is done, buggy
* KinFu Frame: more args fixes
* ICP OCL: small fixes to kernel
* ICP OCL reduce works
* OCL code refactored
* ICP OCL: less allocations, better speed
* ICP OCL: pose matrix made arg
* Render OCL: small fix
* Demo: using UMats everywhere
* TSDF integrate OCL: put const arg into kernel arg
* Platform parameter partially removed, implementation choice is done through OCL availability check
* Frame and FrameGenerator removed (other code is in following commits)
* CPU render: 4b instead of 3b
* ICP: no Frame class use, one class for both CPU and GPU code
* demo: fix for UMat chain
* TSDF: no Frame or FrameGenerator use
* KinFu: no Frame or FrameGenerator, parametrized for Mat or UMat based on OCL availability
* KinFu::setParams() removed since it has no effect anyway
* TSDF::raycast OCL: fixed normals rendering
* ScopeTime -> CV_TRACE
* 3-dims resolution and size passed to API
* fixed unexpected fails of ICP OCL
* voxels made cubic again
* args fixed a little
* fixed volSize calculation
* Tests: inequal, OCL, unified scene test function
* kinfu_frame: input types fixed
* fixed for Intel HD Graphics
* KinFu demo: setUseOptimized instead of setUseOpenCL
* tsdf: data types fixed
* TSDF OCL: fetch normals implemented
* roundDownPow2 -> utils.hpp
* TSDF OCL: fetch points+normals implemented
* TSDF OCL: NoSize, other fixes for kernel args
* Frame OCL: HAVE_OPENCL, NoSize, other kernel args fixed
* ICP OCL: HAVE_OPENCL, NoSize and other kernel fixes
* KinFu demo fixes: volume size and too long delay
* whitespace fix
* TSDF: allowed sizes not divisable by 32
* TSDF: fixed type traits; added optimization TODOs
* KinFu made non-free
* minor fixes: cast and whitespace
* fixed FastICP test
* warnings fixed: implicit type conversions
* OCL kernels: local args made through KernelArg::Local(lsz) call
* MSVC warnings fixed
* a workaround for broken OCV's bilateral
* KinFu tests made a bit faster
* build fixed until 3.4 isn't merged to master
* warnings fixed, test time shortened