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.
This adds a method called TemplateMatches(maybe there is a better name?) that performs some actions with the matrix returned by MatchTemplate. For one it sorts it by asc/desc probability and creates a array with { x, y, probability }-objects so that you can easily iterate over it on the JS side. But due to the nature of MatchTemplate that array can get super big so I added a min/max probability filter and a neighbour filter.
The neighbour filter works by creating a new 1 ch matrix filled with 0s the size of the match matrix. For every match it draws a rectangle centered on the position with the size of (min_x_distance * 2, min_y_distance * 2). New matches are only added if its corresponding rectangle is to occupy a space with 0s. I.e., it is a hit mask. Since the matches are already sorted in order of of most probable only the best match in area will be returned.
I dont know how this fits into this framework, but it sure helped me alot so i thought i would at least send it in :)
Gr8 work btw! (again: review, rusty c++ skills)