v1.6.0

v1.6.0 adiciona um módulo de Time-of-Flight (tof), image.find_displacement() (fluxo óptico por correlação de fase via FFT), uma API de pooling de imagem, sensor.set_windowing() e opções de busca de image.find_template(). find_template() agora impõe sua ROI — leia as mudanças incompatíveis abaixo.

Destaques

  • Módulo tof — suporte a sensor de distância Time-of-Flight.

  • image.find_displacement() — correlação de fase via FFT (fluxo óptico).

  • Poolingmidpoint_pool() / mean_pool() e variantes com pooling.

  • sensor.set_windowing() — janelamento / binning do sensor, com novos framesizes de baixa resolução.

  • find_template() — adicionadas as opções step / search (SEARCH_EX / SEARCH_DS) / roi.

  • Incompatível: image.find_template() agora impõe uma ROI válida — veja as mudanças incompatíveis.

Novos recursos

  • tof — adicionado um módulo de Time-of-Flight com tof.init() / tof.deinit() / tof.read_frame() / tof.draw_frame() / tof.write_reg() (suporte a sensor ToF via I2C).

  • image.find_displacement() — adicionado deslocamento por correlação de fase via FFT (com subpixel e qualidade do resultado), com um exemplo de fluxo óptico.

  • Pooling — adicionados Image.midpoint_pool() / midpoint_pooled() / mean_pool() / mean_pooled().

  • sensor.set_windowing((x, y, w, h)) — janelamento/binning do sensor, com novos framesizes sensor.B40x30 / B64x32 / B64x64 para fluxo óptico.

  • image.find_template() — adicionados os argumentos nomeados step, search (image.SEARCH_EX padrão / image.SEARCH_DS busca rápida em diamante) e roi.

  • Image.copy_to_fb() — copia uma imagem para o framebuffer (com um deslocamento (x, y) opcional) e um exemplo copy2fb.py.

Outras mudanças e melhorias

  • A busca em diamante de find_template() refina seu passo com mais precisão (mais preciso, mais lento); o binning é habilitado automaticamente para framesizes acima de VGA no OpenMV 2; o zoom/escala automático é desabilitado em VGA na OV7725.

Correções de bugs

  • Corrigidos os cálculos da imagem integral e do quadrado da imagem integral (afetando a precisão de Haar / característica / template-matching), a FFT 1D/2D e a correlação de fase, e o pooling in-place que redimensionava o framebuffer.

Suporte de hardware e placas

  • Sensor de distância Time-of-Flight (ToF) via I2C.

  • Novos framesizes de baixa resolução (B40x30 / B64x32 / B64x64) para fluxo óptico.

Mudanças incompatíveis na API

Quebras de API visíveis ao usuário entre a v1.5.0 e a v1.6.0. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.

A mudança incompatível é uma mudança de comportamento (mesma API, resultado diferente) — reverifique os scripts afetados. Cada hash de commit aponta para o seu diff no GitHub.

image.find_template() impõe sua ROI (comportamento)

image.find_template() agora valida sua região de interesse e lança uma exceção (“Region of interest is bigger than image!”) quando a ROI está ausente/superdimensionada ou menor que o template. Passe um roi=(x, y, w, h) válido que tenha pelo menos o tamanho do template e caiba dentro da imagem.

Commits: a25e0c162

Checklist de migração

Passe um roi válido (≥ tamanho do template, dentro da imagem) para image.find_template() (a mudança no find_template). Todos os outros scripts rodam sem alterações.