Image.SURF() is documented but not implemented (and non-free in pip OpenCV builds)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 62/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- opencv, python
- Domaine
- computer-vision, documentation, testing
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
- Langage dominant
- Python
- Étoiles
- 223
- Forks
- 30
- Merge moyen
- 1 h 4 min
- PR mergées (30 j)
- 9
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de petercorke/machinevision-toolbox-python
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 25/100
petercorke/machinevision-toolbox-python#125 ·
Les mainteneurs répondent en général sous 1 jour
-
tech-debt
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
petercorke/machinevision-toolbox-python#122 ·
Les mainteneurs répondent en général sous 1 jour
-
tech-debt
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
petercorke/machinevision-toolbox-python#119 ·
Les mainteneurs répondent en général sous 1 jour
-
tech-debt
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
petercorke/machinevision-toolbox-python#117 ·
Les mainteneurs répondent en général sous 1 jour
-
Remaining bare `except:` / swallowed exceptions in tests/ and src/ (Codacy + hidden failures)Ouvertetech-debt
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 45/100
petercorke/machinevision-toolbox-python#115 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de petercorke/machinevision-toolbox-python
Issues similaires
-
changelog investigate
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
ramnes/notion-sdk-py#409 ·
-
good first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
lindicaphxag-tech/kaggle#28 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
BSData/horus-heresy-3rd-edition#3211 ·
Les mainteneurs répondent en général sous 1 jour
-
bug needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
bug tests
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour