v3.6.4

v3.6.4 añade una biblioteca de servidor de vídeo RTSP, corrige por completo los modos de imagen del OV5640 (escala de grises / RGB565 / Bayer / JPEG en todas las resoluciones), duplica los FPS del sensor con un controlador optimizado, y corrige un lote de errores de codificación Bayer / JPEG. Cambiaron image.get_pixel() en imágenes Bayer y la rotación automática del sensor — lee los cambios incompatibles a continuación.

Aspectos destacados

  • RTSP — una nueva biblioteca de servidor de vídeo RTSP con un ejemplo.

  • OV5640 — escala de grises / RGB565 / Bayer / JPEG ahora funcionan en todas las resoluciones, con una transferencia JPEG máxima mayor y la lectura de alta resolución duplicada.

  • Doble de FPS — el controlador del sensor se optimizó para ~2× la tasa de fotogramas.

  • Correcciones — Bayer borde/vflip, JPEG por software (1-bpp y escala de grises YCbCr), y problemas de desbordamiento de búfer.

  • Incompatible: image.get_pixel() ahora hace debayer de las imágenes Bayer y la rotación automática ahora se vuelve a aplicar en sensor.reset() — consulta los cambios incompatibles.

Nuevas funciones

  • RTSP — se añadió una biblioteca rtsp y un ejemplo rtsp_video_server.py para la transmisión de vídeo por RTSP.

Otros cambios y mejoras

  • Se optimizó el controlador del sensor para aproximadamente el doble de la tasa de fotogramas, se duplicó la lectura de alta resolución del OV5640 para Bayer/escala de grises/JPEG, se aumentó el tamaño máximo de transferencia de imagen JPEG, y se actualizó cascade_convert.py para funcionar con Python 3.

Corrección de errores

Cámara e imagen:

  • Se corrigieron los modos de imagen del OV5640 para que escala de grises / RGB565 / Bayer / JPEG funcionen correctamente en todas las resoluciones, el vflip Bayer en OV7725 / OV7690, el error de conversión Bayer en el borde derecho, la codificación JPEG por software de imágenes de 1-bpp y de escala de grises YCbCr (la resta de −128), los datos sobrantes en imágenes JPEG, y los problemas de desbordamiento de búfer.

Cambios incompatibles en la API

Cambios de API visibles para el usuario entre v3.6.3 y v3.6.4. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.

Ambos cambios incompatibles son cambios de behavior (misma API, resultados diferentes) — vuelve a comprobar los scripts afectados. Cada hash de commit enlaza a su diff en GitHub.

image.get_pixel() hace debayer de las imágenes Bayer (behavior)

image.get_pixel() en una imagen en formato Bayer ahora hace debayer y devuelve una tupla (r, g, b) en lugar del valor Bayer en bruto de un solo canal. Los scripts que leían valores Bayer en bruto mediante get_pixel() ahora recibirán tuplas RGB interpoladas y deben actualizarse.

Commits: bf16b6a4f

La rotación automática se vuelve a aplicar en sensor.reset() (behavior)

La rotación automática del sensor ahora se (re)activa en sensor.reset(). Los scripts que llamaban a sensor.reset() después de configurar la orientación, esperando que el estado de rotación persistiera o no se reaplicara, pueden ver una orientación diferente y deben volver a comprobarse.

Commits: 0d13a214b

Lista de comprobación de migración

Actualiza el código que leía valores Bayer en bruto mediante image.get_pixel() para esperar una tupla (r, g, b) (el cambio de get_pixel), y vuelve a comprobar la orientación del sensor en torno a sensor.reset() (el cambio de rotación automática). Todos los demás scripts se ejecutan sin cambios.