6.20. Encerramento

Este capítulo cobriu as partes de numpy e scipy às quais uma aplicação OpenMV recorre quando uma operação não tem um método embutido na biblioteca de imagens:

  • Conceitos – o que é um ndarray, por que um buffer tipado e compactado supera uma list Python para trabalho numérico e o conjunto de dtypes que a câmera suporta.

  • Forma e indexação – visualizações vs. cópias, atribuição por fatia para atualizações sem alocação, transpose() como uma edição de descritor.

  • Matemática – operadores elemento a elemento, funções universais como sin(), regras de broadcasting, reduções como mean() e auxiliares de seleção como where().

  • Álgebra lineardot() para multiplicação de matrizes, inv() / det() para a inversa, e as decomposições e solucionadores em numpy.linalg e scipy.linalg para problemas com mais estrutura.

  • Processamento de sinaisfft(), sosfilt() para filtragem digital e spectrogram() para espectros de magnitude sem alocação em um laço de streaming.

  • Curvas e integraçãointerp(), polyfit() / polyval(), convolve() para filtros FIR curtos, trapz() para integração trapezoidal de dados amostrados.

  • Solucionadores e números aleatóriosscipy.integrate para quadratura de um callable Python, scipy.optimize para busca de raízes e minimização, scipy.special para funções especiais estatísticas e Generator para amostragem pseudoaleatória.

  • Imagens – a ponte to_ndarray() e image.Image para os casos raros que a biblioteca de imagens não cobre.

  • Desempenho – dtypes pequenos, buffers pré-alocados, operadores in-place, palavras-chave out= e atenção à rotatividade de máscaras booleanas em laços de streaming.

Isso cobre o trabalho numérico genérico no qual o restante da câmera se apoia. numpy é a caixa de ferramentas na qual uma aplicação mergulha quando uma operação não tem um método embutido em Image – uma transformação de pixel personalizada, uma resolução de calibração, uma FFT de áudio em buffer.