v1.6.0

v1.6.0 añade un módulo de tiempo de vuelo (tof), image.find_displacement() (flujo óptico por correlación de fase FFT), una API de pooling de imágenes, sensor.set_windowing() y opciones de búsqueda de image.find_template(). find_template() ahora impone su ROI — lee los cambios incompatibles más abajo.

Aspectos destacados

  • Módulo tof — soporte para sensores de distancia por tiempo de vuelo.

  • image.find_displacement() — correlación de fase FFT (flujo óptico).

  • Poolingmidpoint_pool() / mean_pool() y variantes con pooling.

  • sensor.set_windowing() — ventaneo / binning del sensor, con nuevos tamaños de fotograma de baja resolución.

  • find_template() — se añadieron las opciones step / search (SEARCH_EX / SEARCH_DS) / roi.

  • Incompatible: image.find_template() ahora impone un ROI válido — consulta los cambios incompatibles.

Nuevas características

  • tof — se añadió un módulo de tiempo de vuelo con tof.init() / tof.deinit() / tof.read_frame() / tof.draw_frame() / tof.write_reg() (soporte para sensores ToF I2C).

  • image.find_displacement() — se añadió el desplazamiento por correlación de fase FFT (con subpíxel y calidad del resultado), con un ejemplo de flujo óptico.

  • Pooling — se añadieron Image.midpoint_pool() / midpoint_pooled() / mean_pool() / mean_pooled().

  • sensor.set_windowing((x, y, w, h)) — ventaneo/binning del sensor, con nuevos tamaños de fotograma sensor.B40x30 / B64x32 / B64x64 para flujo óptico.

  • image.find_template() — se añadieron los argumentos de palabra clave step, search (image.SEARCH_EX por defecto / image.SEARCH_DS búsqueda rápida en diamante) y roi.

  • Image.copy_to_fb() — copiar una imagen en el framebuffer (con un desplazamiento (x, y) opcional) y un ejemplo copy2fb.py.

Otros cambios y mejoras

  • La búsqueda en diamante de find_template() refina su paso con mayor precisión (más preciso, más lento); el binning se habilita automáticamente para tamaños de fotograma superiores a VGA en la OpenMV 2; el zoom/escalado automático se deshabilita a VGA en la OV7725.

Correcciones de errores

  • Se corrigieron los cálculos de imagen integral e imagen integral al cuadrado (que afectaban a la precisión de Haar / características / coincidencia de plantillas), la FFT 1D/2D y la correlación de fase, y el redimensionado del framebuffer por el pooling in situ.

Hardware y soporte de placas

  • Sensor de distancia por tiempo de vuelo (ToF) sobre I2C.

  • Nuevos tamaños de fotograma de baja resolución (B40x30 / B64x32 / B64x64) para flujo óptico.

Cambios incompatibles en la API

Rupturas de la API visibles para el usuario entre v1.5.0 y v1.6.0. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.

El cambio incompatible es un cambio de comportamiento (misma API, resultado distinto) — vuelve a revisar los scripts afectados. Cada hash de commit enlaza con su diff en GitHub.

image.find_template() impone su ROI (comportamiento)

image.find_template() ahora valida su región de interés y lanza una excepción («Region of interest is bigger than image!») cuando el ROI está ausente/sobredimensionado o es más pequeño que la plantilla. Pasa un roi=(x, y, w, h) válido que tenga al menos el tamaño de la plantilla y quepa dentro de la imagen.

Commits: a25e0c162

Lista de verificación de migración

Pasa un roi válido (≥ tamaño de la plantilla, dentro de la imagen) a image.find_template() (el cambio de find_template). Todos los demás scripts se ejecutan sin cambios.