1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-19 19:44:14 +08:00

Merge pull request #2566 from akashsharma02:master

[GSoC] Add new Hashtable based TSDF volume to RGBD module

* - Add HashTSDF class
    - Implement Integrate function (untested)

* Integration seems to be working, raycasting does not

* Update integration code

* Integration and Raycasting fixes, (both work now)

* - Format code
- Clean up comments and few fixes

* Add Kinect Fusion backup file

* - Add interpolation for vertices and normals (slow and unreliable!)
- Format code
- Delete kinfu_back.cpp

* Bug fix for integration and noisy odometry

* - Create volume abstract class
- Address Review comments

* - Add getPoints and getNormals function
- Fix formatting according to comments
- Move volume abstract class to include/opencv2/rgbd/
- Write factory method for creating TSDFVolumes
- Small bug fixes
- Minor fixes according to comments

* - Add tests for hashTSDF
- Fix raycasting bug causing to loop forever
- Suppress warnings by explicit conversion
- Disable hashTsdf test until we figure out memory leak
- style changes
- Add missing license in a few files, correct precomp.hpp usage
This commit is contained in:
Akash Sharma
2020-07-03 17:31:39 -04:00
committed by GitHub
parent 52200a82e7
commit 468345511f
15 changed files with 1251 additions and 395 deletions

View File

@@ -312,6 +312,7 @@ static const char* keys =
"{camera |0| Index of depth camera to be used as a depth source }"
"{coarse | | Run on coarse settings (fast but ugly) or on default (slow but looks better),"
" in coarse mode points and normals are displayed }"
"{useHashTSDF | | Use the newer hashtable based TSDFVolume (relatively fast) and for larger reconstructions}"
"{idle | | Do not run KinFu, just display depth frames }"
"{record | | Write depth frames to specified file list"
" (the same format as for the 'depth' key) }"
@@ -327,6 +328,7 @@ int main(int argc, char **argv)
{
bool coarse = false;
bool idle = false;
bool useHashTSDF = false;
string recordPath;
CommandLineParser parser(argc, argv, keys);
@@ -352,6 +354,10 @@ int main(int argc, char **argv)
{
recordPath = parser.get<String>("record");
}
if(parser.has("useHashTSDF"))
{
useHashTSDF = true;
}
if(parser.has("idle"))
{
idle = true;
@@ -382,6 +388,9 @@ int main(int argc, char **argv)
else
params = Params::defaultParams();
if(useHashTSDF)
params = Params::hashTSDFParams(coarse);
// These params can be different for each depth sensor
ds->updateParams(*params);