ulab.utils — ulab pomoćne funkcije¶
Podmodul ulab.utils pruža mali skup pomoćnih funkcija koje djeluju na objektima numpy.ndarray, ali se nalaze izvan standardne NumPy / SciPy površine. Pomoćne su funkcije prilagođene obrascima protoka uobičajenima na ugrađenim ciljnim sustavima – međuspremnicima periferije širima od 16 bita, spektrima magnitude bez alokacije.
Pretvarači međuspremnika¶
Standardna numpy.frombuffer() obrađuje samo dtypeove koje sam numpy definira (uint8, int8, uint16, int16, float). Pomoćne funkcije u nastavku proširuju tu pokrivenost na int16 / uint16 / int32 / uint32 bajtne međuspremnike i vraćaju float numpy.ndarray u jednom prolazu.
- ulab.utils.from_int16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Pretvara međuspremnik
int16uzoraka u floatnumpy.ndarrayu jednom prolazu.- Parametri:
buffer – međuspremnik nalik
byteskoji sadrži uzorke.count – broj elemenata za čitanje.
-1čita cijeli međuspremnik odoffsetdo kraja.offset – broj bajtova koje treba preskočiti na početku međuspremnika.
out – neobavezno unaprijed alocirano float
numpy.ndarrayu koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.
- Vraća:
float
numpy.ndarrayduljinecount(ili dostupnog broja uzoraka kada jecountjednak-1).
- ulab.utils.from_uint16_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Pretvara međuspremnik
uint16uzoraka u floatnumpy.ndarrayu jednom prolazu.- Parametri:
buffer – međuspremnik nalik bytes koji sadrži uzorke.
count – broj elemenata za čitanje.
-1čita cijeli međuspremnik odoffsetdo kraja.offset – broj bajtova koje treba preskočiti na početku međuspremnika.
out – neobavezno unaprijed alocirano float
numpy.ndarrayu koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.
- Vraća:
float
numpy.ndarrayduljinecount(ili dostupnog broja uzoraka kada jecountjednak-1).
- ulab.utils.from_int32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Pretvara međuspremnik
int32uzoraka u floatnumpy.ndarrayu jednom prolazu.- Parametri:
buffer – međuspremnik nalik bytes koji sadrži uzorke.
count – broj elemenata za čitanje.
-1čita cijeli međuspremnik odoffsetdo kraja.offset – broj bajtova koje treba preskočiti na početku međuspremnika.
out – neobavezno unaprijed alocirano float
numpy.ndarrayu koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.
- Vraća:
float
numpy.ndarrayduljinecount(ili dostupnog broja uzoraka kada jecountjednak-1).
- ulab.utils.from_uint32_buffer(buffer: bytes, *, count: int = -1, offset: int = 0, out: numpy.ndarray | None = None, byteswap: bool = False) numpy.ndarray¶
Pretvara međuspremnik
uint32uzoraka u floatnumpy.ndarrayu jednom prolazu.- Parametri:
buffer – međuspremnik nalik bytes koji sadrži uzorke.
count – broj elemenata za čitanje.
-1čita cijeli međuspremnik odoffsetdo kraja.offset – broj bajtova koje treba preskočiti na početku međuspremnika.
out – neobavezno unaprijed alocirano float
numpy.ndarrayu koje se zapisuje rezultat. Kada je dostavljeno, ne alocira se novo polje.byteswap – obrće redoslijed bajtova svakog elementa prije pretvaranja – ispravna postavka kada je međuspremnik došao s periferije koja je zapisivala suprotnim redoslijedom bajtova od CPU-a kamere.
- Vraća:
float
numpy.ndarrayduljinecount(ili dostupnog broja uzoraka kada jecountjednak-1).
Spektrogram¶
- ulab.utils.spectrogram(r: numpy.ndarray, imag: numpy.ndarray | None = None, *, scratchpad: numpy.ndarray | None = None, out: numpy.ndarray | None = None, log: bool = False) numpy.ndarray¶
Vraća magnitudu diskretne Fourierove transformacije ulaza, konceptualno ekvivalentno
np.sqrt(real * real + imag * imag)nakon pozivanumpy.fft.fft()– bez alociranja međumeđuspremnika koje bi eksplicitni oblik alocirao.- Parametri:
r – realni dio ulaza kao 1-D float
numpy.ndarray. Njegova duljina mora biti potencija dvojke.imag – neobavezni imaginarni dio ulaza, istog oblika kao r. Kada se izostavi, ulaz se tretira kao isključivo realan.
scratchpad – neobavezni radni međuspremnik za FFT. Kada je dostavljen, ne alocira se privremeno radno polje.
out – neobavezni unaprijed alocirani odredišni međuspremnik za spektar magnitude. Kada je dostavljen, rezultat se zapisuje izravno u njega.
log – kada je
True, vraća prirodni logaritam magnitude umjesto same magnitude.
- Vraća:
float
numpy.ndarrayiste duljine kao r koje sadrži magnitudu (ili njezin logaritam) u svakom frekvencijskom razredu.