v2.5.0¶
v2.5.0 é uma versão de captura de imagem rica em funcionalidades: acrescenta find_rects(), find_circles(), get_regression() (ajuste de linha/regressão), find_number() (dígitos LeNet), as classes de fluxo ImageWriter / ImageReader, sensor.flush() / width() / height(), e suporte para pyb.RTC. O carregamento de imagens é agora suportado por buffer de fotograma — consulte as alterações incompatíveis abaixo.
Destaques¶
image.find_rects()— detetor de retângulos / quads com saída de cantos.image.find_circles()— deteção de círculos de Hough.image.get_regression()— ajuste de linha por mínimos quadrados e robusto (Theil-Sen).image.find_number()— reconhecimento de dígitos LeNet.ImageWriter/ImageReader— gravação e reprodução de fluxos de imagens.Suporte para
pyb.RTC, maissensor.flush()/sensor.width()/sensor.height().Incompatível: o carregamento de imagens é agora suportado por buffer de fotograma e gera uma exceção se a imagem for demasiado grande — consulte as alterações incompatíveis.
Novas funcionalidades¶
Deteção de características — adicionados
image.find_rects()(detetor de quads AprilTag; objetos rect comx/y/w/h/corners/magnitude),image.find_circles()(Hough),image.get_regression()(ajuste de linha por mínimos quadrados + Theil-Sen robusto) eimage.find_number()(reconhecimento de dígitos LeNet), cada um com scripts de exemplo.Cantos de resultado — adicionado um atributo
cornersaos objetos de resultado de código QR / AprilTag / matriz de dados / código de barras.Fluxos de imagens — adicionadas as classes
image.ImageWriter/image.ImageReader(formato de fragmentos alinhados a 16 bytes) com exemplosimage_writer.py/image_reader.py.Sensor — adicionados
sensor.flush()(enviar o buffer de fotograma para o IDE sem captura de imagem) esensor.width()/sensor.height().pyb.RTC— suporte para RTC ativado com um exemplortc.py.Adicionada uma cascade Haar de cara de gato e um exemplo de Servo-Shield (PCA9685); a ferramenta de anfitrião
openmv-cascade.pyganhou suporte para o novo formato de cascade XML do OpenCV.
Outras alterações e melhorias¶
O buffer de fotograma foi refatorado para que os métodos de imagem
copy_to_fbatualizem a pré-visualização do IDE; os caminhos deHaarCascade()já não requerem uma/inicial (a distinção entre integrado e ficheiro é automática); a gravação GIF/MJPEG suporta agora VGA (e GIFs BAYER); oREADME.txtintegrado foi atualizado e o ficheiro de controladoropenmv.infjá não é criado num sistema de ficheiros novo.
Correções de erros¶
Processamento de imagem:
Corrigida a acumulação de votos em
find_circles(), o desvio de rho emget_regression()com ROI e uma fuga de memória, a fusão de segmentos emfind_lines(), a média de ângulos e os limites de cor predefinidos (menos restritivos) emfind_blobs(), a estabilidade de ordenação de pontos-chave ORB / ordenação de descritores e o indicador de correspondência, e o carregamento em buffer de cascades Haar (leituras não alinhadas).
Sistema:
Ativado o Servo 3
pyb(P9) (#256), corrigida a inicialização do RTC, aumentado o tempo limite de caracteres UART (#240) e corrigido o indicador «enabled» do buffer de fotograma do sensor não inicializado.
Hardware e suporte de placas¶
Alterações incompatíveis de API¶
Alterações de API visíveis ao utilizador entre v2.4.1 e v2.5.0. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.
A alteração incompatível é uma alteração de comportamento (mesma API, resultado diferente) — verifique novamente os scripts afetados. Cada hash de commit está ligado ao seu diff no GitHub.
O carregamento de imagens é suportado por buffer de fotograma (comportamento)¶
image.Image / o carregamento de imagens copia agora a imagem carregada para o buffer de fotograma principal e gera uma exceção se a imagem for demasiado grande para caber. Carregamentos que anteriormente eram bem-sucedidos para um buffer de heap podem agora falhar — certifique-se de que as imagens carregadas cabem no buffer de fotograma (ou trate o novo erro).
Commits: 87d53385a
Lista de verificação de migração¶
Certifique-se de que as imagens carregadas cabem no buffer de fotograma (ou intercepte o novo erro «image too large») onde anteriormente confiava em carregamentos de imagens suportados por heap (a alteração de carregamento de imagens). Todos os outros scripts funcionam sem alterações.