v1.6.0

v1.6.0 aggiunge un modulo Time-of-Flight (tof), image.find_displacement() (flusso ottico tramite correlazione di fase FFT), un’API di pooling delle immagini, sensor.set_windowing() e opzioni di ricerca per image.find_template(). find_template() ora impone la sua ROI — leggi le modifiche incompatibili più sotto.

In evidenza

  • Modulo tof — supporto per sensore di distanza Time-of-Flight.

  • image.find_displacement() — correlazione di fase FFT (flusso ottico).

  • Poolingmidpoint_pool() / mean_pool() e le varianti con pooling.

  • sensor.set_windowing() — windowing / binning del sensore, con nuove framesize a bassa risoluzione.

  • find_template() — aggiunte le opzioni step / search (SEARCH_EX / SEARCH_DS) / roi.

  • Incompatibile: image.find_template() ora impone una ROI valida — vedi le modifiche incompatibili.

Nuove funzionalità

  • tof — aggiunto un modulo Time-of-Flight con tof.init() / tof.deinit() / tof.read_frame() / tof.draw_frame() / tof.write_reg() (supporto per sensore ToF I2C).

  • image.find_displacement() — aggiunto lo spostamento tramite correlazione di fase FFT (con subpixel e qualità del risultato), con un esempio di flusso ottico.

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

  • sensor.set_windowing((x, y, w, h)) — windowing/binning del sensore, con le nuove framesize sensor.B40x30 / B64x32 / B64x64 per il flusso ottico.

  • image.find_template() — aggiunti gli argomenti keyword step, search (image.SEARCH_EX di default / image.SEARCH_DS ricerca a diamante rapida) e roi.

  • Image.copy_to_fb() — copia un’immagine nel framebuffer (con un offset (x, y) opzionale) e un esempio copy2fb.py.

Altre modifiche e miglioramenti

  • La ricerca a diamante di find_template() raffina il suo passo in modo più preciso (più accurata, più lenta); il binning si abilita automaticamente per le framesize superiori a VGA sull’OpenMV 2; lo zoom/scala automatico è disabilitato a VGA sull’OV7725.

Correzioni di bug

  • Corretti i calcoli dell’immagine integrale e dell’immagine integrale al quadrato (che influivano sull’accuratezza di Haar / feature / template-matching), la FFT 1D/2D e la correlazione di fase, e il ridimensionamento del framebuffer durante il pooling in place.

Hardware e supporto schede

  • Sensore di distanza Time-of-Flight (ToF) su I2C.

  • Nuove framesize a bassa risoluzione (B40x30 / B64x32 / B64x64) per il flusso ottico.

Modifiche API incompatibili

Rotture dell’API visibili all’utente tra v1.5.0 e v1.6.0. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.

La modifica incompatibile è un cambiamento di comportamento (stessa API, risultato diverso) — ricontrolla gli script interessati. Ogni hash di commit rimanda al relativo diff su GitHub.

image.find_template() impone la sua ROI (comportamento)

image.find_template() ora valida la sua regione di interesse e solleva un’eccezione («Region of interest is bigger than image!») quando la ROI è assente/sovradimensionata o più piccola del template. Passa una roi=(x, y, w, h) valida che sia almeno della dimensione del template e che rientri nell’immagine.

Commit: a25e0c162

Checklist di migrazione

Passa una roi valida (≥ dimensione del template, all’interno dell’immagine) a image.find_template() (la modifica di find_template). Tutti gli altri script funzionano invariati.