Image.SURF() is documented but not implemented (and non-free in pip OpenCV builds)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 62/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- opencv, python
- Área
- computer-vision, documentation, testing
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 223
- Forks
- 30
- Merge medio
- 1 h 4 min
- PR fusionados (30 d)
- 9
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de petercorke/machinevision-toolbox-python
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 25/100
petercorke/machinevision-toolbox-python#125 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/machinevision-toolbox-python#122 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
petercorke/machinevision-toolbox-python#119 ·
Los mantenedores suelen responder en 1 día
-
tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
petercorke/machinevision-toolbox-python#117 ·
Los mantenedores suelen responder en 1 día
-
Remaining bare `except:` / swallowed exceptions in tests/ and src/ (Codacy + hidden failures)Abiertotech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
petercorke/machinevision-toolbox-python#115 ·
Los mantenedores suelen responder en 1 día
Todos los issues de petercorke/machinevision-toolbox-python
Issues similares
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ramnes/notion-sdk-py#409 ·
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
lindicaphxag-tech/kaggle#28 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
BSData/horus-heresy-3rd-edition#3211 ·
Los mantenedores suelen responder en 1 día
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
bug tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día