v2.6.0¶
A v2.6.0 atualiza o núcleo para o MicroPython 1.9.2, muda find_line_segments() para o algoritmo LSD, adiciona suporte ao sensor de obturador global MT9V034, correção de perspectiva com image.rotation_corr(), sensor.sleep(), salvamento de imagens raw e a base para as placas OpenMV 4. O comportamento de find_line_segments(), de vários framesizes e do MicroPython mudou — leia as mudanças incompatíveis abaixo.
Destaques¶
Atualização do núcleo para o MicroPython 1.9.2.
Segmentos de linha LSD —
find_line_segments()agora usa o algoritmo Line Segment Detector.Suporte ao sensor de obturador global MT9V034.
image.rotation_corr()— correção de rotação de perspectiva em X/Y/Z.sensor.sleep()modo de soft sleep e salvamento de imagens raw (não comprimidas).Incompatível: os parâmetros de
find_line_segments(), várias constantes de framesize e o comportamento do MicroPython mudaram — veja as mudanças incompatíveis.
Novos recursos¶
image.rotation_corr()— adicionada correção de rotação de perspectiva em X/Y/Z com um exemplorotation_correction.py.sensor.sleep(enable)— coloca a câmera em um modo de soft sleep (com um exemplo de modo de sleep).Imagens raw —
image.save()agora pode gravar imagens raw (não comprimidas).MT9V034 — adicionado suporte ao sensor de obturador global, expondo a constante
sensor.MT9V034.Adicionado um exemplo
lens_correction.pyparaimage.lens_corr()e arquivos de suporte às placas OpenMV 4 (base de configuração de placa / bootloader / linker).
Outras mudanças e melhorias¶
Atualizou o MicroPython incluído para 1.9.2 (encanamento da porta 1.9, oofatfs); reescreveu
find_line_segments.pypara a nova API LSD (correção de lente desativada por padrão); atualizou a APIopenmvdo lado do host (init(portname)/exec_script/stop_script); reduziu o clock do sensor na OpenMV Cam M4 (menor FPS máximo na M4); o botão Stop da IDE agora usa uma exceção forçada e dura para interromper scripts de forma mais confiável.
Correções de bugs¶
Corrigiu
image.lens_corr()que deixava pixels obsoletos (o buffer de destino agora é limpo antes do remapeamento),blob.density()que usava divisão inteira (sempre retornava 0, #268), o mapeamento de pinos UART da OpenMV 2 (M4) e atualizouqrcodes_with_lens_corr.pypara usar QVGA.
Hardware e suporte a placas¶
Sensor de obturador global MT9V034.
OpenMV 4 — arquivos de suporte à placa (base).
OpenMV 2 (M4) — correção do mapeamento de pinos UART.
Mudanças incompatíveis de API¶
Quebras de API visíveis ao usuário entre a v2.5.0 e a v2.6.0. Escopo: módulos C de Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada mudança é marcada com seu impacto:
major — afeta a maioria dos scripts que usavam o recurso; você precisará portar o código.
minor — API restrita; afeta apenas scripts que a usavam.
behavior — mesma API, resultados diferentes; reverifique scripts ajustados.
As mudanças estão agrupadas por impacto nessa ordem. Se você só quer portar seu código, vá direto para a lista de verificação de migração no final. Cada hash de commit aponta para seu diff no GitHub.
find_line_segments() migrou para LSD (major)¶
image.find_line_segments() foi reescrito para usar o algoritmo Line Segment Detector (LSD). Os antigos parâmetros threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride foram substituídos por merge_distance e max_theta_diff (por exemplo, find_line_segments(merge_distance=0, max_theta_diff=15)). Ele também não está mais disponível em placas da classe M4 (OpenMV 2).
Constantes de framesize inválidas removidas (minor)¶
As constantes de framesize inválidas sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA foram removidas (#261). Scripts que as usam devem mudar para uma resolução suportada.
Commits: 35ab0a26f
find_qrcodes() removido na OpenMV Cam M4 (minor)¶
image.find_qrcodes() não é mais compilado em placas da classe M4 (OpenMV 2). Use uma placa OpenMV 3 (M7) ou outro recurso de código para detecção de QR em hardware M4. Outras placas não são afetadas.
Commits: 7dff089e6
MicroPython atualizado para 1.9.2 (behavior)¶
O núcleo MicroPython incluído foi atualizado para 1.9.2. O comportamento da biblioteca padrão e da linguagem segue o MicroPython 1.9.2 upstream — reverifique scripts que dependem de comportamento específico de versão. Notavelmente, um fatiamento de imagem com um passo diferente de 1 agora lança OSError em vez de NotImplementedError.
Commits: 11bed4b99
Lista de verificação de migração¶
Para um port limpo para a v2.6.0, o trabalho típico é:
Reescrever as chamadas de
find_line_segments()para os parâmetros LSD (merge_distance/max_theta_diff) e mover esse processamento para fora da M4 (a reformulação do LSD).Substituir as constantes de framesize removidas por uma resolução suportada (a remoção de framesizes).
Mover a detecção de QR codes da M4 para uma placa M7 (a mudança de find_qrcodes).
Revalidar o comportamento específico de versão contra o MicroPython 1.9.2 (a atualização do MicroPython).
Todos os outros scripts rodam sem alterações.