Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Image.SURF() is documented but not implemented (and non-free in pip OpenCV builds)

Abierto
#113 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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

tech-debt

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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de petercorke/machinevision-toolbox-python

Todos los issues de petercorke/machinevision-toolbox-python

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.