Image.SURF() is documented but not implemented (and non-free in pip OpenCV builds)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 62/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- opencv, python
- Ambito
- computer-vision, documentation, testing
Direzione di ricerca
Start in ImagePointFeatures.py by reading the existing BRISK/AKAZE pattern and _resolve_feature_create, then inspect tests/test_image_point_features.py::test_surf and the Image.SURF listing in docs/source/card-algorithms.rst. Done means either a conditionally tested SURF implementation with a clear non-free-build error and corrected docs, or removal of the unsupported API from both the docs and test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Found 2026-10-03 while fixing #51.
docs/source/card-algorithms.rst lists Image.SURF alongside SIFT, BRISK and ORB, but there is no SURF method or SURFFeature class, and there never has been in this repo's git history (no SURF_create or def SURF in any commit). tests/test_image_point_features.py::test_surf called img.SURF() inside a bare try/except: pass, so the AttributeError was swallowed and the test passed without testing anything.
Constraint
SURF is patented/non-free. cv2.xfeatures2d.SURF_create exists in OpenCV 4.14 and 5.0 (opencv-contrib-python), but calling it raises error: (-213) because the pip wheels are not built with OPENCV_ENABLE_NONFREE. So an Image.SURF() would fail on every standard pip install unless OpenCV is built from source.
Fix
Add Image.SURF() and SURFFeature following the existing BRISK/AKAZE pattern in ImagePointFeatures.py (_resolve_feature_create, resolving via cv2.xfeatures2d), raising a clear error that explains the non-free requirement when the build can't provide it. Unskip test_surf conditionally on that availability, and fix the docs line. Alternative if SURF is judged out of scope: remove it from card-algorithms.rst and delete the test.
Related: #51
- Lingua principale
- Python
- Stelle
- 223
- Fork
- 30
- Merge medio
- 1h 4m
- PR unite (30g)
- 9
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di petercorke/machinevision-toolbox-python
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 25/100
petercorke/machinevision-toolbox-python#125 ·
I maintainer di solito rispondono entro 1 giorno
-
tech-debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
petercorke/machinevision-toolbox-python#122 ·
I maintainer di solito rispondono entro 1 giorno
-
tech-debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
petercorke/machinevision-toolbox-python#119 ·
I maintainer di solito rispondono entro 1 giorno
-
tech-debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
petercorke/machinevision-toolbox-python#117 ·
I maintainer di solito rispondono entro 1 giorno
-
Remaining bare `except:` / swallowed exceptions in tests/ and src/ (Codacy + hidden failures)Apertatech-debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
petercorke/machinevision-toolbox-python#115 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di petercorke/machinevision-toolbox-python
Issue simili
-
Broken links found in docsApertadocs pydanty:is-working
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pydantic/pydantic-ai#10113 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
GreedyBear-Project/GreedyBear#1727 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
ARM-software/CMSIS-DSP#354 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
kiat/codeAssist#391 ·
-
needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
darnitdevorg/darnit#587 ·
I maintainer di solito rispondono entro 1 giorno