6.20. Conclusão¶
O capítulo cobriu as partes de numpy e scipy a que uma aplicação OpenMV recorre quando uma operação não tem um método integrado na biblioteca de imagens:
Conceitos – o que é um
ndarray, por que um buffer tipado compacto supera umalistPython para trabalho numérico, e o conjunto de dtypes que a câmara suporta.Forma e indexação – vistas vs. cópias, atribuição por fatia para atualizações sem alocação,
transpose()como edição de descritor.Matemática – operadores elemento a elemento, funções universais como
sin(), regras de broadcasting, reduções comomean(), e auxiliares de seleção comowhere().Álgebra linear –
dot()para multiplicação matricial,inv()/det()para a inversa, e as decomposições e resolvedores emnumpy.linalgescipy.linalgpara problemas com mais estrutura.Processamento de sinal –
fft(),sosfilt()para filtragem digital, espectrogram()para espectros de magnitude sem alocação num ciclo contínuo.Curvas e integração –
interp(),polyfit()/polyval(),convolve()para filtros FIR curtos,trapz()para integração trapezoidal de dados amostrados.Resolvedores e números aleatórios –
scipy.integratepara quadratura de um chamável Python,scipy.optimizepara pesquisa de raízes e minimização,scipy.specialpara funções especiais estatísticas, eGeneratorpara amostragem pseudo-aleatória.Imagens – a ponte
to_ndarray()eimage.Imagepara 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 ao desempenho com máscaras booleanas em ciclos contínuos.
Isso cobre o trabalho numérico genérico em que o resto da câmara se apoia. numpy é a caixa de ferramentas a que uma aplicação recorre quando uma operação não tem um método integrado em Image – uma transformação personalizada de pixels, uma resolução de calibração, uma FFT de áudio em buffer.