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, mais sensor.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 com x / y / w / h / corners / magnitude), image.find_circles() (Hough), image.get_regression() (ajuste de linha por mínimos quadrados + Theil-Sen robusto) e image.find_number() (reconhecimento de dígitos LeNet), cada um com scripts de exemplo.

  • Cantos de resultado — adicionado um atributo corners aos 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 exemplos image_writer.py / image_reader.py.

  • Sensor — adicionados sensor.flush() (enviar o buffer de fotograma para o IDE sem captura de imagem) e sensor.width() / sensor.height().

  • pyb.RTC — suporte para RTC ativado com um exemplo rtc.py.

  • Adicionada uma cascade Haar de cara de gato e um exemplo de Servo-Shield (PCA9685); a ferramenta de anfitrião openmv-cascade.py ganhou 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_fb atualizem a pré-visualização do IDE; os caminhos de HaarCascade() 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); o README.txt integrado foi atualizado e o ficheiro de controlador openmv.inf já 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 em get_regression() com ROI e uma fuga de memória, a fusão de segmentos em find_lines(), a média de ângulos e os limites de cor predefinidos (menos restritivos) em find_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

  • Suporte para pyb.RTC e Servo 3 pyb (P9); exemplo de Servo-Shield (PCA9685).

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.