[](https://www.python.org/)
| Sr | Scene | **Harris** | Shi-Tomasi | FAST | SIFT | ORB | AKAZE | BRISK |
|---|---|---|---|---|---|---|---|---|
| 1 | scuba diver and fish · edges 12% | **0.981** | 0.759 | 0.793 | 0.829 | 0.902 | 0.891 | 0.768 |
| 2 | polar bear on a rail · edges 18% | **0.985** | 0.865 | 0.806 | 0.823 | 0.674 | 0.804 | 0.740 |
| 3 | glass pyramid · edges 23% | **0.909** | 0.846 | 0.740 | 0.713 | 0.846 | 0.878 | 0.731 |
| 4 | coiled snake · edges 30% | **0.921** | 0.857 | 0.754 | 0.727 | 0.816 | 0.873 | 0.721 |
Harris returns ~1000 keypoints and AKAZE ~357. More keypoints means more chances for one to land inside the 3 px match radius, so the natural objection is that Harris wins on density. Randomly discarding its keypoints answers it:
Flat. A tenth of the keypoints scores the same as all of them. Randomly subsampled, so the survivors are not quietly reselected for quality. Pinned by test_harris_does_not_win_by_finding_more_keypoints.
So density is not the explanation — but placement partly is. Harris's 33.5% coverage against SIFT's 80.6% says the two are not solving the same problem: Harris is answering "where are the most reliable corners", and a homography needs "where are reliable corners *spread across the frame*". Pinned by test_harris_trades_frame_coverage_for_repeatability.
---

Code and full results on GitHub (code private)
Every number is read from the file the run produced. github.com/hammasbuilds · kaggle.com/muhammadhammas13