New normalization in histogram comparison tutorial to use Kullback-Leibler divergence #27516
+37
−29
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.
The Kullback-Leibler divergence works with histograms that have integral = 1, otherwise it can return negative values. Currently, in the histogram comparison tutorial the histograms have been normalized to have values between 0 and 1, not to have the sum of the values equal to 1.
The normalization of the histograms have been changed (
NORM_L1
instead ofNORM_MINMAX
). The Alternative Chi-Square and the Kullback-Leibler divergence have been added. The codes have been tested. The .markdown file has been updated (new C++ results).Moreover, the intersection now returns values between 1 and 0, like the correlation.
The sentence "We can observe that the matches between the test 1 and test 2 with respect to the base are worse, which again, was expected" has been removed from the .markdown file, because it is not longer true for the Chi-Square. In any case, the documentation already said that "the matching should not be very good" for both test images, and it didn't say that the comparison with test 1 was expected to be better than test 2.
Thanks to @LucaGMartino for the support.
Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
Patch to opencv_extra has the same branch name.