v2.6.0¶
v2.6.0 aggiorna il core a MicroPython 1.9.2, fa passare find_line_segments() all’algoritmo LSD, aggiunge il supporto al sensore MT9V034 a global shutter, la correzione prospettica image.rotation_corr(), sensor.sleep(), il salvataggio di immagini raw e le fondamenta per la scheda OpenMV 4. find_line_segments(), diversi framesize e il comportamento di MicroPython sono cambiati — leggi le modifiche incompatibili qui sotto.
In evidenza¶
Aggiornamento del core a MicroPython 1.9.2.
Segmenti di linea LSD —
find_line_segments()ora usa l’algoritmo Line Segment Detector.Supporto al sensore a global shutter MT9V034.
image.rotation_corr()— correzione della rotazione prospettica su X/Y/Z.sensor.sleep()modalità soft sleep e salvataggio di immagini raw (non compresse).Incompatibilità: i parametri di
find_line_segments(), diverse costanti framesize e il comportamento di MicroPython sono cambiati — vedi le modifiche incompatibili.
Nuove funzionalità¶
image.rotation_corr()— aggiunta la correzione della rotazione prospettica su X/Y/Z con un esempiorotation_correction.py.sensor.sleep(enable)— mette la camera in una modalità soft sleep (con un esempio di modalità sleep).Immagini raw —
image.save()ora può scrivere immagini raw (non compresse).MT9V034 — aggiunto il supporto al sensore a global shutter, esponendo la costante
sensor.MT9V034.Aggiunto un esempio
lens_correction.pyperimage.lens_corr()e i file di supporto per la scheda OpenMV 4 (fondamenta di configurazione scheda / bootloader / linker).
Altre modifiche e miglioramenti¶
Aggiornato il MicroPython incluso a 1.9.2 (plumbing del port 1.9, oofatfs); riscritto
find_line_segments.pyper la nuova API LSD (correzione lente disattivata di default); aggiornata l’APIopenmvlato host (init(portname)/exec_script/stop_script); abbassato il clock del sensore sull’OpenMV Cam M4 (FPS massimi più bassi sull’M4); il pulsante Stop dell’IDE ora usa un’eccezione forzata hard per interrompere gli script in modo più affidabile.
Correzioni di bug¶
Corretti
image.lens_corr()che lasciava pixel obsoleti (il buffer di destinazione ora viene azzerato prima del remapping),blob.density()che usava la divisione intera (restituiva sempre 0, #268), la mappatura dei pin UART sull’OpenMV 2 (M4) e aggiornatoqrcodes_with_lens_corr.pyper usare QVGA.
Hardware e supporto schede¶
Sensore a global shutter MT9V034.
OpenMV 4 — file di supporto scheda (fondamenta).
OpenMV 2 (M4) — correzione della mappatura dei pin UART.
Modifiche incompatibili dell’API¶
Rotture dell’API visibili all’utente tra la v2.5.0 e la v2.6.0. Ambito: moduli C Python in modules/ e librerie Python in scripts/libraries/.
Ogni modifica è contrassegnata dal suo impatto:
major — riguarda la maggior parte degli script che usavano la funzionalità; dovrai adattare il codice.
minor — API ristretta; riguarda solo gli script che la usavano.
behavior — stessa API, risultati diversi; ricontrolla gli script messi a punto.
Le modifiche sono raggruppate per impatto in quell’ordine. Se vuoi solo adattare il tuo codice, salta alla checklist di migrazione in fondo. Ogni hash di commit rimanda al suo diff su GitHub.
find_line_segments() passa a LSD (major)¶
image.find_line_segments() è stato riscritto per usare l’algoritmo Line Segment Detector (LSD). I vecchi parametri threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride sono stati sostituiti da merge_distance e max_theta_diff (es. find_line_segments(merge_distance=0, max_theta_diff=15)). Inoltre non è più disponibile sulle schede di classe M4 (OpenMV 2).
Costanti framesize non valide rimosse (minor)¶
Le costanti framesize non valide sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA sono state rimosse (#261). Gli script che le usano devono passare a una risoluzione supportata.
Commit: 35ab0a26f
find_qrcodes() rimossa sull’OpenMV Cam M4 (minor)¶
image.find_qrcodes() non viene più compilata sulle schede di classe M4 (OpenMV 2). Usa una scheda OpenMV 3 (M7) o un’altra funzionalità di codice per il rilevamento dei QR su hardware M4. Le altre schede non sono interessate.
Commit: 7dff089e6
MicroPython aggiornato a 1.9.2 (behavior)¶
Il core MicroPython incluso è stato aggiornato a 1.9.2. Il comportamento della libreria standard e del linguaggio segue l’upstream MicroPython 1.9.2 — ricontrolla gli script che dipendono da comportamenti specifici della versione. In particolare, uno slice di immagine con uno step diverso da 1 ora solleva OSError invece di NotImplementedError.
Commit: 11bed4b99
Checklist di migrazione¶
Per un porting pulito alla v2.6.0 il lavoro tipico è:
Riscrivere le chiamate a
find_line_segments()per i parametri LSD (merge_distance/max_theta_diff) e spostare quell’elaborazione fuori dall’M4 (la rielaborazione LSD).Sostituire le costanti framesize rimosse con una risoluzione supportata (la rimozione dei framesize).
Spostare il rilevamento dei codici QR dall’M4 a una scheda M7 (la modifica di find_qrcodes).
Rivalidare il comportamento specifico della versione rispetto a MicroPython 1.9.2 (l’aggiornamento di MicroPython).
Tutti gli altri script funzionano senza modifiche.