6.20. 마무리¶
이 장에서는 어떤 연산이 내장 이미지 라이브러리 메서드를 갖지 않을 때 OpenMV 애플리케이션이 의지하는 numpy와 scipy의 부분들을 다루었습니다:
개념 –
ndarray가 무엇인지, 수치 작업에서 패킹된 타입 버퍼가 Pythonlist보다 나은 이유, 그리고 카메라가 지원하는 dtype 집합.형상과 인덱싱 – 뷰 대 복사, 할당 없는 갱신을 위한 슬라이스 대입, 디스크립터 편집으로서의
transpose().수학 – 요소별 연산자,
sin()같은 보편 함수, 브로드캐스팅 규칙,mean()같은 축약,where()같은 선택 헬퍼.선형대수 – 행렬 곱을 위한
dot(), 역행렬을 위한inv()/det(), 그리고 더 많은 구조를 가진 문제를 위한numpy.linalg와scipy.linalg아래의 분해 및 솔버.신호 처리 –
fft(), 디지털 필터링을 위한sosfilt(), 그리고 스트리밍 루프에서 할당 없는 크기 스펙트럼을 위한spectrogram().곡선과 적분 –
interp(),polyfit()/polyval(), 짧은 FIR 필터를 위한convolve(), 샘플링된 데이터의 사다리꼴 적분을 위한trapz().솔버와 난수 – Python 호출 가능 객체의 구적을 위한
scipy.integrate, 근 찾기와 최소화를 위한scipy.optimize, 통계적 특수 함수를 위한scipy.special, 그리고 의사 난수 샘플링을 위한Generator.이미지 – 이미지 라이브러리가 다루지 않는 드문 경우를 위한
to_ndarray()와image.Image브리지.성능 – 작은 dtype, 미리 할당된 버퍼, 제자리 연산자,
out=키워드, 그리고 스트리밍 루프에서 불리언 마스크의 잦은 재생성에 주의하기.
이것으로 나머지 카메라가 의지하는 일반적인 수치 작업을 다루었습니다. numpy는 어떤 연산이 Image에 내장 메서드를 갖지 않을 때 애플리케이션이 손을 뻗는 도구 상자입니다 – 맞춤형 픽셀 변환, 보정 풀이, 버퍼링된 오디오의 FFT 등이 그 예입니다.