Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello!
First, thanks for this amazing repo! I have been working a while with it and I am quite happy with everything.
However, one of the main problems that I found when implementing new minimal/non-minimal solvers is that you need to add a dedicated
int findProblem()
in thesrc/gcransac_python.cpp
, and if you want to test 6 or 7 variants... Well, you easily end up with a script with 5-10k lines, and working there is a little bit clumsy.So, I propose to templatize the problems into a smaller bunch (see
include/problem_instances/*.hpp
), so that the problems can be directly instantiated in thebindings.cpp
, what makes sense, at least for me.I just merged all the problems in the most straightforward way, and had to include some booleans in the functions for just some extra processing, but I think this can be improved in a lot of ways. This is just a first step.
For example, adding the
P1ACQuerySolver
, as in the commit 15e8b1b would only consist in:include/estimators/solver_acp1p_query.h
typedef
declaration in theinclude/types.h
bindings.cpp
Hope you find it useful!!