csi — kennot¶
csi-moduuli on moderni, oliopohjainen rajapinta OpenMV Camin kennoihin. Kutakin fyysistä kennoa edustaa CSI-instanssi, joten monispektriset kuvauslevyt, jotka yhdistävät värikennon lämpö- tai tapahtumakennoon, voivat ohjata kutakin itsenäisesti antamalla konstruktorille eri cid-arvon. Yhden kennon kamerat luovat vain yhden CSI-instanssin.
CSI-olio hallitsee kennon koko konfiguraation – pikseliformaatin, kehyskoon / ikkunan, valotuksen / vahvistuksen / valkotasapainon, laitteistotason peilauksen ja kääntämisen, väripalkkien testikuvion, kehysnopeuden kellon, automaattivalotuksen kohdealueen sekä siruyksilölliset ioctl-komennot. Kehykset kaapataan CSI.snapshot()-metodilla, joka palauttaa kehyspuskurin tukeman image.Image-olion.
Tämä moduuli korvaa vanhan sensor-moduulin (joka tarjosi saman toiminnallisuuden moduulitason funktioina, jotka oli sidottu yhteen piilotettuun kennoon). Uuden koodin tulisi käyttää CSI-luokkaa.
Esimerkkikäyttö:
import csi
# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000) # skip frames
# Take pictures.
while(True):
csi0.snapshot()
Asyncio-käyttö¶
Yllä oleva estävä CSI.snapshot()-silmukka ei toimi yhteistyössä asyncio-tapahtumasilmukan kanssa – kun snapshot odottaa seuraavaa kehystä, jokainen muu ohjelman korutiini on jäädytettynä. Jotta kaappaussilmukka voi toimia rinnakkain muun samanaikaisen työn kanssa (UART-asiakas, painikkeen tarkkailija, verkkotehtävä), kääri CSI pieneen sovittimeen, joka muuttaa snapshot-kutsun await-yhteensopivaksi korutiiniksi pollaamalla snapshot(blocking=False) -metodia ja luovuttamalla vuoron tapahtumasilmukalle tarkistusten välissä:
import asyncio
import csi
class AsyncCSI:
def __init__(self, *args, **kwargs):
self._csi = csi.CSI(*args, **kwargs)
def __getattr__(self, name):
return getattr(self._csi, name)
async def snapshot(self):
while True:
img = self._csi.snapshot(blocking=False)
if img is not None:
return img
await asyncio.sleep_ms(0)
__getattr__ välittää kaikki muut attribuutit (reset, pixformat, framesize, kennon säätimet) taustalla olevalle CSI-oliolle, joten kääre on suora korvaaja. Ensimmäinen estämätön kutsu myös käynnistää kameran DMA-kaappauksen, jos se ei ollut vielä käynnissä, joten erillistä alustusta ei tarvita.
Kaappaussilmukka sopii sitten suurempaan asyncio-ohjelmaan vain yhtenä korutiinina muiden joukossa:
async def capture_loop(cam):
while True:
img = await cam.snapshot()
# process img here
async def main():
cam = AsyncCSI()
cam.reset()
cam.pixformat(csi.RGB565)
cam.framesize(csi.QVGA)
asyncio.create_task(some_other_task())
await capture_loop(cam)
asyncio.run(main())
framebuffers -asetuksella on edelleen merkitystä tässä muodossa – yhden puskurin tila saa snapshot(blocking=False) -kutsun palauttamaan None, kunnes seuraava kehys on kaapattu, kun taas kaksois- tai kolmoispuskurointi tasoittaa tämän niin, että kääre yleensä löytää puskuroidun kehyksen valmiina jo ensimmäisellä pollauksella. Katso AsyncCSI-päätösharjoitus asyncio-oppaasta täydellistä läpikäyntiä varten.
class CSI – Camera Sensor Interface¶
CSI-luokkaa käytetään kennon ohjaamiseen.
- class csi.CSI(cid: int = -1, delays: bool = True, fflush: bool = True, stream: bool | None = None)¶
Luo olio kennon kanssa kommunikointia varten. Useamman kennon levyillä tietty CSI-olio voidaan valita antamalla
cidkutencsi.LEPTON, jolla valitaan FLIR Lepton -kennomoduuli. Joscidon -1, valitaan ensisijainen kenno (yleensä värikameramoduuli usean kennon levyillä).Jos
delaysonFalse, kaikki csi-ajurin asettumisaikaviiveet poistetaan käytöstä. Oletuksena kennoajuri viivyttää nollauksen / tilanvaihdon jälkeen estääkseenCSI.snapshot-metodin palauttamasta vioittuneita kehyksiä. Viiveiden poistaminen käytöstä antaa sinun niputtaa päivitykset ja soveltaa yhtä viivettä lopuksi ennenCSI.snapshot-kutsua.Jos
fflushonFalse,CSI.framebuffers-kohdassa mainittu automaattinen kehyspuskurin tyhjennys poistetaan käytöstä. Tämä poistaa kaikki aikarajoitukset kehyspuskurin fifo:ssa olevilta kehyksiltä.streamvalitsee, onko tämä CSI IDE:lle lähetettävä virtalähde. JosNone(oletus), CSI:stä tulee virtalähde vain, jos se on ensisijainen (ei-apukenno). AnnaTruepakottaaksesi tämän CSI:n virtalähteeksi, tai mikä tahansa epätosi arvo jättääksesi nykyisen virtalähteen ennalleen.Metodit¶
- reset(hard: bool = True) None¶
Alustaa kennon. Suorittaa laitteistotason nollauksen kytkemällä kameramoduulin RESET-signaalin GPIO:ta, jos
hardonTrue.hardtulisi asettaa epätodeksi nollattaessa apukennoja, jotka jakavat saman RESET-signaalin GPIO:n ensisijaisen moduulin kanssa.
- shutdown(enable: bool) None¶
Asettaa kameran lepotilaa pienempään virrankulutustilaan (mutta kamera on nollattava herätettäessä).
- sleep(enable: bool) None¶
Asettaa kameran lepotilaan, jos
enableon True. Muutoin herättää sen takaisin.
- flush() None¶
Kopioi nykyisen kehyspuskurin sisällön IDE:n esikatseluun. Kutsu tätä viimeisen
CSI.snapshot-kutsun jälkeen, jos komentosarja päättyy, jotta IDE näyttää viimeisen kehyksen.
- snapshot(time: int = -1, frames: int = -1, blocking: bool = True, image: image.Image | None = None) image.Image | None¶
Ottaa kuvan kameralla ja palauttaa
image.Image-olion.Jos
timeja/taiframesannetaan, snapshot estää sen verrantimemillisekuntia ja/taiframeskameralta kaapattua kehystä. Molempia argumentteja voidaan käyttää samanaikaisesti. Kuntimeja/taiframeson kulunut, snapshot palauttaaNone.blockingvoi ollaFalse, jolloin otetaan käyttöön estämätön toiminta, joka saa snapshotin palauttamaanNone, kun seuraava kuva kameralta ei ole valmis, sen sijaan että odotettaisiin.imagevoi olla toinenimage.Image-olio, joka päivitetään kameralta kaapatulla uudella kuvalla sen sijaan, että palautettaisiin uusiimage.Image-olio. Aiemman kuvan sisältö korvataan syväkopiolla.Jos
CSI.auto_rotationon käytössä, tämä metodi palauttaa jo käännetynimage.Image-olion.
- cid() int¶
Palauttaa kameramoduulin sirun tunnuksen (chip ID). Vertaa johonkin seuraavista:
csi.OV2640,csi.OV5640,csi.OV7670,csi.OV7690,csi.OV7725,csi.OV9650,csi.MT9V022,csi.MT9V024,csi.MT9V032,csi.MT9V034,csi.MT9M114,csi.BOSON320,csi.BOSON640,csi.LEPTON,csi.HM01B0,csi.HM0360,csi.GC2145,csi.GENX320ES,csi.GENX320,csi.PAG7920,csi.PAG7936,csi.PAJ6100,csi.FROGEYE2020taicsi.SOFTCSI.
- readable() bool¶
Palauttaa
True, josCSI.snapshot-metodilla on palautettavissa kuva, jolloin snapshot-kutsu ei esty.
- pixformat(pixformat: int | None = None) int | None¶
Asettaa kameramoduulin pikseliformaatiksi yhden seuraavista:
csi.GRAYSCALE,csi.RGB565,csi.BAYER,csi.YUV422taicsi.JPEG(vain OV2640/OV5640).Palauttaa nykyisen pikseliformaatin, jos kutsutaan ilman argumentteja.
- framesize(framesize: int | Tuple[int, int] | None = None) int | None¶
Asettaa kameramoduulin kehyskooksi yhden kokovakioista (esim.
csi.QVGA,csi.VGA,csi.HDjne. — katso vakiot-osio).Vaihtoehtoisesti voit antaa mukautetun kehyskoon
(w, h)-monikkona. KunCSI.snapshotkutsutaan, mukautettu kehyskoko arvioidaan DMA-sääntöjä vasten. Yleensä kehyskokojen on oltava 8 pikselin ja/tai 16 tavun monikertoja.Palauttaa nykyisen kehyskoon, jos kutsutaan ilman argumentteja.
- framerate(rate: int | None = None) int | None¶
Asettaa kameramoduulin kehysnopeuden hertseinä (Hz).
Palauttaa nykyisen kehysnopeuden, jos kutsutaan ilman argumentteja.
Muista
CSI.frameratetoimii pudottamalla kameramoduulin vastaanottamia kehyksiä pitääkseen kehysnopeuden määritetyn nopeuden tasolla tai sen alapuolella. Oletuksena kamera toimii maksimikehysnopeudella. Jos kyseiselle kennolle on toteutettu,CSI.frameratemyös pienentää kennon kehysnopeutta sisäisesti säästääkseen virtaa ja parantaakseen kuvanlaatua lisäämällä kennon valotusta.CSI.frameratevoi olla ristiriidassaCSI.auto_exposure-asetuksen kanssa joissakin kameroissa.
- window(roi: Tuple[int, int] | Tuple[int, int, int, int] | None = None) Tuple[int, int, int, int] | None¶
Asettaa kameran resoluution nykyisen resoluution osa-alueeksi.
roion(x, y, w, h)-monikko. Voit myös antaa(w, h), jolloin ikkuna keskitetään.Palauttaa nykyisen
(x, y, w, h)-monikon, jos kutsutaan ilman argumentteja.
- gainceiling(gainceiling: int) bool¶
Aseta kameran kuvan vahvistuksen yläraja (gainceiling) yhdeksi seuraavista: 2, 4, 8, 16, 32, 64 tai 128.
Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- brightness(brightness: int) bool¶
Aseta kameran kuvan kirkkaus.
Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- contrast(contrast: int) bool¶
Aseta kameran kuvan kontrasti.
Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- saturation(saturation: int) bool¶
Aseta kameran kuvan värikylläisyys.
Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- quality(quality: int) bool¶
Aseta kameran kuvan JPEG-pakkauslaatu. 0 - 100.
Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.Muista
Vain OV2640/OV5640-kameroille.
- colorbar(enable: bool) bool¶
Kytkee väripalkkitilan päälle (
True) tai pois (False). Oletuksena pois päältä.Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- auto_gain(enable: bool, gain_db: float | None = None, gain_db_ceiling: float | None = None) None¶
enablekytkee automaattisen vahvistuksen säädön päälle (True) tai pois (False). Kamera käynnistyy automaattinen vahvistuksen säätö päällä.Jos
enableonFalse, voit asettaa kiinteän vahvistuksen desibeleinä argumentillagain_db.Jos
enableonTrue, voit asettaa automaattisen vahvistuksen säätöalgoritmille vahvistuksen ylärajan desibeleinä argumentillagain_db_ceiling.Muista
Sinun on kytkettävä myös valkotasapaino pois päältä, jos haluat seurata värejä.
- auto_exposure(enable: bool, exposure_us: int = -1) None¶
enablekytkee automaattisen valotuksen säädön päälle (True) tai pois (False). Kamera käynnistyy automaattinen valotuksen säätö päällä.Jos
enableonFalse, voit asettaa kiinteän valotusajan mikrosekunteina argumentillaexposure_us.Muista
Kameran automaattiset valotusalgoritmit ovat melko varovaisia sen suhteen, kuinka paljon ne säätävät valotusarvoa, ja yleensä välttävät valotusarvon muuttamista suuresti. Sen sijaan ne muuttavat vahvistuksen arvoa paljon sopeutuakseen muuttuvaan valaistukseen.
- auto_whitebal(enable: bool, rgb_gain_db: Tuple[float, float, float] | None = None) None¶
enablekytkee automaattisen valkotasapainon päälle (True) tai pois (False). Kamera käynnistyy automaattinen valkotasapaino päällä.Jos
enableonFalse, voit asettaa kiinteän vahvistuksen desibeleinä punaiselle, vihreälle ja siniselle kanavalle argumentillargb_gain_db.Muista
Sinun on kytkettävä myös vahvistuksen säätö pois päältä, jos haluat seurata värejä.
- rgb_gain_db() Tuple[float, float, float]¶
Palauttaa monikon
(r, g, b), joka sisältää kameran nykyiset punaisen, vihreän ja sinisen vahvistusarvot desibeleinä.
- auto_blc(enable: bool, regs: List[int] | None = None) None¶
Asettaa kameran automaattisen mustatason kalibroinnin (BLC).
enableannaTruetaiFalsekytkeäksesi BLC:n päälle tai pois. Yleensä tämän halutaan aina olevan päällä.regsjos pois käytöstä, voit asettaa BLC-rekisterien arvot manuaalisesti aiemmastaCSI.blc_regs-kutsusta.
- blc_regs() List[int]¶
Palauttaa kennon BLC-rekisterit kokonaislukulistana. Käytetään
CSI.auto_blc-metodin kanssa.
- hmirror(enable: bool | None = None) bool | None¶
Kytkee vaakapeilaustilan päälle (
True) tai pois (False). Oletuksena pois päältä.Palauttaa nykyisen asetuksen, jos kutsutaan ilman argumentteja.
- vflip(enable: bool | None = None) bool | None¶
Kytkee pystykääntötilan päälle (
True) tai pois (False). Oletuksena pois päältä.Palauttaa nykyisen asetuksen, jos kutsutaan ilman argumentteja.
- transpose(enable: bool | None = None) bool | None¶
Kytkee transponointitilan päälle (
True) tai pois (False). Oletuksena pois päältä.vflip=False, hmirror=False, transpose=False -> 0 asteen kierto
vflip=True, hmirror=False, transpose=True -> 90 asteen kierto
vflip=True, hmirror=True, transpose=False -> 180 asteen kierto
vflip=False, hmirror=True, transpose=True -> 270 asteen kierto
Palauttaa nykyisen asetuksen, jos kutsutaan ilman argumentteja.
- auto_rotation(enable: bool | None = None) bool | None¶
Kytkee automaattisen kiertotilan päälle (
True) tai pois (False). Oletuksena pois päältä.Palauttaa nykyisen asetuksen, jos kutsutaan ilman argumentteja.
Muista
Tämä metodi toimii vain, kun OpenMV Camiin on asennettu
imu, ja se otetaan käyttöön automaattisesti.
- framebuffers(count: int | None = None) int | None¶
Asettaa kuvadatan vastaanottoon käytettävien kehyspuskureiden määrän. Oletuksena OpenMV Cam yrittää varata mahdollisimman monta kehyspuskuria. Uudelleenvaraus tapahtuu aina, kun
CSI.pixformat,CSI.framesizetaiCSI.windowkutsutaan.countarvo 1 (yksi puskuri), 2 (kaksoispuskuri) tai 3 (kolmoispuskuri) valitsee vastaavan kaappaustilan. Anna 4 tai suurempi asettaaksesi ajurin video-FIFO-tilaan, jossacountpuskuria asetetaan jonoon — hyödyllistä videon tallennukseen SD-kortille. Kehyksen pudotessa kaikki kehyspuskurit aktiivista lukuun ottamatta tyhjennetään, jotenCSI.snapshotpalauttaa aina tuoreen kehyksen.Palauttaa nykyisen määrän, jos kutsutaan ilman argumentteja.
- special_effect(effect: int) bool¶
Asettaa erityisen digitaalisen tehosteen (yksi seuraavista:
csi.NORMALtaicsi.NEGATIVE).Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- lens_correction(enable: bool, radi: int, coef: int) bool¶
enableTrueottaa käyttöön,Falsepoistaa käytöstä.radikorjattavien pikseleiden säde kokonaislukuna.coefkorjauksen voimakkuus.Palauttaa
Trueonnistuessaan jaFalseepäonnistuessaan.
- vsync_callback(cb: Callable[[int], None] | None = None) Callable[[int], None] | None¶
Rekisteröi takaisinkutsun
cbsuoritettavaksi (keskeytyskontekstissa) aina, kun kameramoduuli generoi uuden kehyksen (mutta ennen kuin kehys vastaanotetaan).cbottaa yhden argumentin, jolle välitetään vsync-nastan nykyinen tila muutoksen jälkeen.Palauttaa rekisteröidyn takaisinkutsun, jos kutsutaan ilman argumentteja. Anna mikä tahansa ei-kutsuttava arvo tyhjentääksesi takaisinkutsun.
- frame_callback(cb: Callable[[], None] | None = None) Callable[[], None] | None¶
Rekisteröi takaisinkutsun
cbsuoritettavaksi (keskeytyskontekstissa) aina, kun kameramoduuli generoi uuden kehyksen ja kehys on valmis luettavaksiCSI.snapshot-metodilla.cbei ota argumentteja. Käytä tätä ajoittaaksesi kehyksen lukemisen myöhemminmicropython.schedule()-funktiolla.Palauttaa rekisteröidyn takaisinkutsun, jos kutsutaan ilman argumentteja. Anna mikä tahansa ei-kutsuttava arvo tyhjentääksesi takaisinkutsun.
- ioctl(request: int, *args) Any¶
Suorittaa kennokohtaisen pyynnön.
requeston yksiIOCTL_*-vakioista; loput positioargumentit ja paluuarvo riippuvat pyynnöstä. Tuetut pyynnöt on ryhmitelty kennoperheittäin alla.Yleiset (mikä tahansa kenno):
ioctl(IOCTL_SET_READOUT_WINDOW, (x, y, w, h))ioctl(IOCTL_SET_READOUT_WINDOW, (w, h))Aseta kennon lukuikkuna. Pienempi ikkuna nostaa kehysnopeutta näkökentän kustannuksella.
ioctl(IOCTL_GET_READOUT_WINDOW)Palauttaa nykyisen lukuikkunan
(x, y, w, h)-monikkona.ioctl(IOCTL_SET_TRIGGERED_MODE, enable)Ota käyttöön (
True) tai poista käytöstä (False) liipaistu tila MT9V034:ssä.ioctl(IOCTL_GET_TRIGGERED_MODE)Palauttaa nykyisen liipaistun tilan tilan
bool-arvona.ioctl(IOCTL_SET_FOV_WIDE, enable)Kun
True, ohjeistaaframesize()-metodin optimoimaan näkökentän mukaan kehysnopeuden sijaan.ioctl(IOCTL_GET_FOV_WIDE)Palauttaa nykyisen FOV-wide-tilan
bool-arvona.ioctl(IOCTL_SET_NIGHT_MODE, enable)Ota käyttöön (
True) tai poista käytöstä (False) kennon hämärän valon ”yötila”. Vain OV7725 ja OV5640.ioctl(IOCTL_GET_NIGHT_MODE)Palauttaa nykyisen yötilan tilan
bool-arvona.ioctl(IOCTL_GET_RGB_STATS)Palauttaa nelikon, joka sisältää kennolta luetut raa’at RGB-kanavien tilastot
(r, gb, gr, b)(käytetään tyypillisesti valkotasapainon viritykseen).
OV5640 FPC – automaattitarkennus:
ioctl(IOCTL_TRIGGER_AUTO_FOCUS)Käynnistä automaattitarkennuksen pyyhkäisy OV5640 FPC -moduulissa.
ioctl(IOCTL_PAUSE_AUTO_FOCUS)Keskeytä käynnissä oleva automaattitarkennuksen pyyhkäisy.
ioctl(IOCTL_RESET_AUTO_FOCUS)Nollaa automaattitarkennuksen asema oletukseen.
ioctl(IOCTL_WAIT_ON_AUTO_FOCUS)ioctl(IOCTL_WAIT_ON_AUTO_FOCUS, timeout_ms)Estä, kunnes nykyinen automaattitarkennuksen pyyhkäisy on valmis.
timeout_mson oletuksena 5000, jos jätetään pois.
FLIR Lepton:
ioctl(IOCTL_LEPTON_GET_WIDTH)Palauttaa Lepton-kuvan leveyden pikseleinä.
ioctl(IOCTL_LEPTON_GET_HEIGHT)Palauttaa Lepton-kuvan korkeuden pikseleinä.
ioctl(IOCTL_LEPTON_GET_RADIOMETRY)Palauttaa Leptonin tyypin (radiometrinen vai ei) kokonaislukuna.
ioctl(IOCTL_LEPTON_GET_REFRESH)Palauttaa Leptonin virkistystaajuuden hertseinä (Hz).
ioctl(IOCTL_LEPTON_GET_RESOLUTION)Palauttaa Leptonin ADC-resoluution bitteinä.
ioctl(IOCTL_LEPTON_RUN_COMMAND, cmd)Suorita FLIR Lepton SDK -komento.
cmdon SDK:n määrittelemä 16-bittinen komennon tunnus.ioctl(IOCTL_LEPTON_SET_ATTRIBUTE, attr_id, payload)Kirjoita Lepton SDK -attribuutti.
attr_idon 16-bittinen attribuutin tunnus;payloadonbytes/bytearray, jonka pituuden on oltava 16 bitin monikerta.ioctl(IOCTL_LEPTON_GET_ATTRIBUTE, attr_id, words)Lue Lepton SDK -attribuutti.
attr_idon 16-bittinen attribuutin tunnus;wordson luettavien 16-bittisten sanojen määrä. Palauttaabytearray-arvon.ioctl(IOCTL_LEPTON_GET_FPA_TEMP)Palauttaa Leptonin polttotasomatriisin (FPA) lämpötilan celsiusasteina.
ioctl(IOCTL_LEPTON_GET_AUX_TEMP)Palauttaa Leptonin apulämpötilan celsiusasteina.
ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled)ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled, high_temp_enabled)Vaihda Lepton AGC:n ja suoran lämpötilatulosteen välillä.
measurement_enabled=Trueottaa käyttöön suoran lämpötilatulosteen. Valinnainenhigh_temp_enabled-lippu valitsee korkean lämpötilan alueen.ioctl(IOCTL_LEPTON_GET_MODE)Palauttaa kaksikon
(measurement_enabled, high_temp_enabled).ioctl(IOCTL_LEPTON_SET_RANGE, (min_celsius, max_celsius))Aseta lämpötila-alue, joka kuvataan väliin
0..255, kun mittaustila on käytössä.ioctl(IOCTL_LEPTON_GET_RANGE)Palauttaa nykyisen
(min_celsius, max_celsius)-alueen.
Himax HM01B0 – liikkeentunnistus:
ioctl(IOCTL_HIMAX_MD_ENABLE, enable)Ota käyttöön (
True) tai poista käytöstä (False) HM01B0:n kennossa oleva liikkeentunnistuslohko.ioctl(IOCTL_HIMAX_MD_WINDOW, (x, y, w, h))ioctl(IOCTL_HIMAX_MD_WINDOW, (w, h))Aseta liikkeentunnistusikkuna HM01B0:ssa.
ioctl(IOCTL_HIMAX_MD_THRESHOLD, threshold)Aseta liikkeentunnistuksen kynnysarvo (
0–255).ioctl(IOCTL_HIMAX_MD_CLEAR)Tyhjennä liikkeentunnistuksen keskeytyssalpa.
ioctl(IOCTL_HIMAX_OSC_ENABLE, enable)Ota käyttöön (
True) tai poista käytöstä (False) HM01B0:n sisäinen oskillaattori.
Prophesee GENX320 – tapahtumakenno:
ioctl(IOCTL_GENX320_SET_BIASES, preset)Sovella bias-esiasetus.
preseton yksiGENX320_BIASES_*-vakioista.ioctl(IOCTL_GENX320_SET_BIAS, bias, value)Aseta yksittäinen bias.
biason yksiGENX320_BIAS_*-vakioista;valueon kokonaislukuasetus.ioctl(IOCTL_GENX320_SET_AFK, enable)ioctl(IOCTL_GENX320_SET_AFK, enable, freq_low_hz, freq_high_hz)Määritä välkynnänestosuodatin.
enableon bool; valinnaiset taajuusargumentit asettavat suodattimen päästökaistan.ioctl(IOCTL_GENX320_SET_STC, mode)ioctl(IOCTL_GENX320_SET_STC, mode, arg1[, arg2])Määritä spatiotemporaalinen kontrastisuodatin.
modeon yksiGENX320_STC_*-vakioista; enintään kaksi muuta argumenttia ovat tilakohtaisia.ioctl(IOCTL_GENX320_SET_MODE, mode)ioctl(IOCTL_GENX320_SET_MODE, mode, evt_res)Vaihda kenno kehys- ja tapahtumatilojen välillä.
modeon yksiGENX320_MODE_*-vakioista. Tapahtumatilassaevt_resonIOCTL_GENX320_READ_EVENTS-pyynnölle välitettävän tapahtumapuskurin rivisuunnan pituus.ioctl(IOCTL_GENX320_READ_EVENTS, buf)Lue tapahtumat
buf-puskuriin, joka onuint16-tyyppinenndarraymuotoa(EVT_res, 6), jossaEVT_reson kahden potenssi väliltä 1024–65536. Sarakkeet ovat:[0]– tapahtuman tyyppi (PIX_OFF_EVENT/PIX_ON_EVENT/ liipaisin).[1]– sekunnit.[2]– millisekunnit.[3]– mikrosekunnit.[4]–x-koordinaatti.[5]–y-koordinaatti.
Palauttaa kirjoitettujen tapahtumien määrän.
ioctl(IOCTL_GENX320_READ_EVENTS_RAW)Palauttaa
image.Image-olion, joka sisältää raa’an tapahtumakehyksen GENX320:lta.ioctl(IOCTL_GENX320_CALIBRATE, iterations, sigma)Kytke pois pikselit, joiden kohina on yli
sigmakeskihajontaa normaalijakaumasta.iterationson kalibrointikertojen määrä kokonaislukuna. Palauttaa pois kytkettyjen pikselien määrän.
- color_palette(palette: int | None = None) int | None¶
Asettaa väripaletin, jota käytetään esimerkiksi FLIR Lepton -harmaasävyn muuntamiseen RGB565:ksi tai GENX320:n tapahtumien visualisointiin. Yksi seuraavista:
image.PALETTE_RAINBOW,image.PALETTE_IRONBOW, ja (kun tuettu)image.PALETTE_DEPTH,image.PALETTE_EVT_DARKtaiimage.PALETTE_EVT_LIGHT.Palauttaa nykyisen asetuksen, jos kutsutaan ilman argumentteja.
Funktiot¶
Vakiot¶
- csi.BINARY: int¶
BINARY (bittikartta) -pikseliformaatti. Kukin pikseli on 1-bittinen. Hyödyllinen maskien tallennukseen; voidaan käyttää
image.Image()-funktion kanssa.
- csi.RGB565: int¶
RGB565-pikseliformaatti. Kukin pikseli on 16-bittinen (5 bittiä punaista, 6 bittiä vihreää, 5 bittiä sinistä).
- csi.YUV422: int¶
YUV422-pikseliformaatti. Kukin pikseli tallennetaan harmaasävyisenä 8-bittisenä Y-arvona, jota seuraavat vuorottelevat 8-bittiset U/V-väriarvot, jotka jaetaan kahden Y-arvon kesken (Y1, U, Y2, V, …). Vain osa kuvankäsittelymetodeista toimii YUV422:n kanssa.
- csi.JPEG: int¶
JPEG-tila. Kameramoduuli tuottaa pakattuja JPEG-kuvia. Käytä
CSI.quality-asetusta JPEG-laadun säätämiseen. Toimii vain OV2640/OV5640-kameroille.
- csi.NORMAL: int¶
Normaalitila
CSI.special_effect-asetukselle.
- csi.NEGATIVE: int¶
Negatiivitila
CSI.special_effect-asetukselle.
- csi.IOCTL_SET_FOV_WIDE: int¶
Ota
CSI.framesizeoptimoimaan näkökentän mukaan FPS:n sijaan. KatsoCSI.ioctl.
- csi.IOCTL_GET_FOV_WIDE: int¶
Palauttaa, optimoiko
CSI.framesizenäkökentän mukaan FPS:n sijaan. KatsoCSI.ioctl.
- csi.IOCTL_TRIGGER_AUTO_FOCUS: int¶
Liipaise automaattitarkennus OV5640 FPC -kameramoduulissa. Katso
CSI.ioctl.
- csi.IOCTL_PAUSE_AUTO_FOCUS: int¶
Keskeytä automaattitarkennus (käynnissä olevana) OV5640 FPC -kameramoduulissa. Katso
CSI.ioctl.
- csi.IOCTL_RESET_AUTO_FOCUS: int¶
Nollaa automaattitarkennus oletukseen OV5640 FPC -kameramoduulissa. Katso
CSI.ioctl.
- csi.IOCTL_WAIT_ON_AUTO_FOCUS: int¶
Odota automaattitarkennuksen valmistumista OV5640 FPC -kameramoduulissa. Katso
CSI.ioctl.
- csi.IOCTL_SET_NIGHT_MODE: int¶
Kytke yötila päälle tai pois. Pienentää kehysnopeutta lisätäkseen valotusta dynaamisesti. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_WIDTH: int¶
Palauttaa FLIR Lepton -kuvan resoluution leveyden pikseleinä. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_HEIGHT: int¶
Palauttaa FLIR Lepton -kuvan resoluution korkeuden pikseleinä. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_RADIOMETRY: int¶
Palauttaa FLIR Lepton -tyypin (radiometrinen vai ei). Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_REFRESH: int¶
Palauttaa FLIR Lepton -virkistystaajuuden hertseinä (Hz). Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_RESOLUTION: int¶
Palauttaa FLIR Lepton -ADC-resoluution bitteinä. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_RUN_COMMAND: int¶
Suorittaa 16-bittisen komennon FLIR Lepton SDK:sta. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_SET_ATTRIBUTE: int¶
Asettaa FLIR Lepton -attribuutin FLIR Lepton SDK:sta. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_ATTRIBUTE: int¶
Hakee FLIR Lepton -attribuutin FLIR Lepton SDK:sta. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_FPA_TEMP: int¶
Hakee FLIR Lepton -FPA-lämpötilan celsiusasteina. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_AUX_TEMP: int¶
Hakee FLIR Lepton -AUX-lämpötilan celsiusasteina. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_SET_MODE: int¶
Asettaa FLIR Lepton -ajurin tilaan, jossa kukin pikseli on lämpötila-arvo. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_MODE: int¶
Palauttaa, onko mittaustila käytössä FLIR Lepton -kennolle. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_SET_RANGE: int¶
Asettaa lämpötila-alueen, joka kuvataan pikseliarvoiksi mittaustilassa. Katso
CSI.ioctl.
- csi.IOCTL_LEPTON_GET_RANGE: int¶
Palauttaa mittaustilassa käytettävän lämpötila-alueen. Katso
CSI.ioctl.
- csi.IOCTL_HIMAX_MD_THRESHOLD: int¶
Asettaa liikkeentunnistuksen kynnysarvon HM01B0:ssa. Katso
CSI.ioctl.
- csi.IOCTL_HIMAX_MD_CLEAR: int¶
Tyhjentää liikkeentunnistuksen keskeytyksen HM01B0:ssa. Katso
CSI.ioctl.
- csi.IOCTL_GENX320_SET_BIASES: int¶
Asettaa GENX320-kennon biasit yhdeksi
GENX320_BIASES_*-esiasetuksista. KatsoCSI.ioctl.CSI.reset-kutsun jälkeen ajuri soveltaa esiasetustacsi.GENX320_BIASES_LOW_NOISE, eicsi.GENX320_BIASES_DEFAULT— käytä tätä ioctl-kutsua vaihtaaksesi eri esiasetukseen, kun sovellus tarvitsee lisää herkkyyttä tai kaistanleveyttä.
- csi.GENX320_BIASES_DEFAULT: int¶
GenX320:n datalehden oletukset — tasapainotettu herkkyys, kohina ja kaistanleveys yleisiin näkymiin.
- csi.GENX320_BIASES_LOW_LIGHT: int¶
Viritetty hämärän valon olosuhteisiin — molempia kontrastikynnyksiä on löysennetty suuremman herkkyyden saavuttamiseksi, FO on laskettu, HPF on poistettu käytöstä, jotta hitaat kirkkauden muutokset rekisteröityvät edelleen.
- csi.GENX320_BIASES_ACTIVE_MARKER: int¶
Viritetty seuraamaan korkeakontrastisia vilkkuvia LEDejä (aktiivisia merkkejä) — kontrastikynnyksiä on nostettu niin, että vain terävät siirtymät laukaisevat, FO ja HPF on viritetty korkealle maksimoidakseen kaistanleveyden ja hylätäkseen hitaan ympäristön ajautumisen, REFR=0 niin että jokainen vilkkureuna kaapataan.
- csi.GENX320_BIASES_LOW_NOISE: int¶
Ajurin oletus — pienempi herkkyys kuin
DEFAULT(nostetut kontrastikynnykset) ja pienempi FO vähemmän taustakohina-aktiivisuuden vuoksi. Paras staattisille tai hitaille näkymille, joissa virhetapahtumat dominoisivat.
- csi.GENX320_BIASES_HIGH_SPEED: int¶
Viritetty nopean liikkeen näkymiin — korkeampi FO laajempaa pikselikaistanleveyttä varten, korkeampi HPF hitaiden muutosten hylkäämiseksi, korkeampi REFR pidempää kuollutta aikaa varten kunkin tapahtuman jälkeen, jotta luku ei kyllästy.
- csi.IOCTL_GENX320_SET_BIAS: int¶
Asettaa yksittäisen GENX320-kennon biasin DAC-arvoksi. Anna
GENX320_BIAS_*-vakio (csi.GENX320_BIAS_DIFF_OFF,csi.GENX320_BIAS_DIFF_ON,csi.GENX320_BIAS_FO,csi.GENX320_BIAS_HPFtaicsi.GENX320_BIAS_REFR) ja kokonaisluku-DAC-arvo. Kukin bias on itsenäinen — kutsu tätä ioctl-kutsua toistuvasti säätääksesi vain tarvitsemiasi biaseja esiasetuksen soveltamisen jälkeen. KatsoCSI.ioctl.
- csi.GENX320_BIAS_DIFF_OFF: int¶
Negatiivisen komparaattorin kontrastikynnys — ohjaa, kuinka paljon pikselin on tummennuttava ennen kuin
csi.PIX_OFF_EVENTlaukeaa. Pienempi arvo = herkempi (enemmän tapahtumia).
- csi.GENX320_BIAS_DIFF_ON: int¶
Positiivisen komparaattorin kontrastikynnys — ohjaa, kuinka paljon pikselin on kirkastuttava ennen kuin
csi.PIX_ON_EVENTlaukeaa. Pienempi arvo = herkempi (enemmän tapahtumia).
- csi.GENX320_BIAS_FO: int¶
Pikselin alipäästön rajataajuus — tasapainottaa pikselin kaistanleveyttä (nopeus/viive) taustakohina-aktiivisuutta vasten. Korkeampi arvo = nopeampi pikselivaste, enemmän kohinaa.
- csi.GENX320_BIAS_HPF: int¶
Pikselin ylipäästön rajataajuus — hylkää hitaat kirkkauden muutokset. Korkeampi arvo = hitaat muutokset suodatetaan pois (vain nopeat siirtymät rekisteröityvät).
- csi.GENX320_BIAS_REFR: int¶
Pikselin lepoaika (refractory) — kuollut aika sen jälkeen, kun pikseli lähettää tapahtuman, jonka aikana se ei voi laueta uudelleen. Korkeampi arvo = pidempi kuollut aika, vähemmän tapahtumia kiireiseltä pikseliltä.
- csi.IOCTL_GENX320_SET_AFK: int¶
Asettaa GENX320:n välkynnänesto- (AFK) suodattimen, joka hylkää tapahtumat pikseleiltä, jotka vaihtelevat jaksollisella taajuuskaistalla (loisteputkivalaistus, LED-ohjatut näytöt jne.). Anna
enable(1 ottaa käyttöön, 0 poistaa käytöstä) ja, käyttöön otettaessa, kaistan reunat hertseinä:(enable, freq_low_hz, freq_high_hz). KatsoCSI.ioctl.
- csi.IOCTL_GENX320_SET_STC: int¶
Asettaa GENX320:n spatiotemporaalisen kontrastin (STC) suodattimen tilan. Anna
GENX320_STC_*-vakio (csi.GENX320_STC_DISABLE,csi.GENX320_STC_ONLY,csi.GENX320_STC_TRAIL_ONLY,csi.GENX320_STC_TRAIL), jota seuraavat tilan vaatimat kynnysarvo(t) (millisekunteina). KatsoCSI.ioctl.
- csi.GENX320_STC_DISABLE: int¶
Poista käytöstä GENX320:n STC/trail-suodatin — jokainen tapahtuma menee läpi.
- csi.GENX320_STC_ONLY: int¶
Säilyttää purskeen toisen tapahtuman; pudottaa ensimmäisen tapahtuman ja kaikki myöhemmät tapahtumat. Ottaa yhden parametrin,
stc_thresholdmillisekunteina — tapahtumat, jotka osuvat tähän ikkunaan saman pikselin aiemmasta tapahtumasta, katsotaan osaksi samaa purskettä.
- csi.GENX320_STC_TRAIL_ONLY: int¶
Säilyttää purskeen ensimmäisen tapahtuman; pudottaa myöhemmät tapahtumat samalta pikseliltä, kunnes
trail_thresholdon kulunut. Ottaa yhden parametrin,trail_thresholdmillisekunteina.
- csi.GENX320_STC_TRAIL: int¶
Säilyttää purskeen ensimmäisen tapahtuman sekä myöhemmät reunat — yhdistää
csi.GENX320_STC_ONLYjacsi.GENX320_STC_TRAIL_ONLY. Ottaa kaksi parametria,stc_thresholdjatrail_threshold(molemmat ms); kenno vaatii näiden pysyvän suunnilleen 13:1-suhteen sisällä.
- csi.IOCTL_GENX320_SET_MODE: int¶
Asettaa GENX320:n toimintatilan. Anna
csi.GENX320_MODE_HISTOkennolla olevaa tapahtumahistogrammia varten (kamera käyttäytyy kuten tavallinen harmaasävykamera määritetyllä kehysnopeudella) taicsi.GENX320_MODE_EVENT, jota seuraa tapahtuma-ndarray:n rivisuunnan pituus (kahden potenssi väliltä 1024–65536) raa’an tapahtumavirran lähetystä varten. KatsoCSI.ioctl.
- csi.GENX320_MODE_HISTO: int¶
Histogrammitila — tapahtumat kerätään kennolla pikselikohtaisiin lokeroihin ja raportoidaan 320x320-harmaasävykehyksenä määritetyllä nopeudella (~20–350 FPS). Kamera näyttää tavalliselta kameralta, joten kaikki tavanomaiset kuvankäsittelyrutiinit toimivat suoraan.
- csi.GENX320_MODE_EVENT: int¶
Tapahtumatila — ohittaa kennolla olevan histogrammin ja lähettää raa’at tapahtumat numpy-
ndarray:hin mikrosekuntiaikaleimoilla sovelluksille, jotka tarvitsevat täyden ajallisen yksityiskohdan ennalta lokeroidun kehyksen sijaan.
- csi.IOCTL_GENX320_READ_EVENTS: int¶
Lukee raa’at tapahtumat uint16-
ndarray:hin muotoa(EVT_res, 6)(jossaEVT_resvastaacsi.IOCTL_GENX320_SET_MODE-kutsulle välitettyä puskurin kokoa). Sarakkeet ovat[0]tapahtuman tyyppi (csi.PIX_OFF_EVENT,csi.PIX_ON_EVENT,csi.EXT_TRIGGER_RISING/FALLING,csi.RST_TRIGGER_RISING/FALLING),[1]sekuntiaikaleima,[2]millisekunnit,[3]mikrosekunnit,[4]X-koordinaatti (0–319),[5]Y-koordinaatti (0–319). Palauttaa puskuriin kirjoitettujen tapahtumien määrän jättäen sen määrän ylittävät vanhemmat rivit koskemattomiksi. KatsoCSI.ioctl.
- csi.IOCTL_GENX320_CALIBRATE: int¶
Poistaa automaattisesti käytöstä kuumat pikselit — pikselit, jotka laukeavat virheellisesti jopa staattisessa näkymässä. Ajuri rakentaa 320x320-pikselikohtaisen osumalaskurin, laskee keskiarvon ja keskihajonnan, ja poistaa käytöstä kaikki pikselit, joiden laskuri ylittää
mean + sigma * stddev. Anna tapahtumamäärän budjetti (laskettavat tapahtumat ennen tilastojen laskemista — korkeampi = luotettavampi arvio, hitaampi; ~10000 on hyvä oletus) ja sigma-liukuluku (pienempi = aggressiivisempi, ~0,5 oletus). Palauttaa pois käytöstä poistettujen pikselien määrän. Suuntaa kamera ensin staattiseen näkymään, jotta liikkeen aiheuttamat tapahtumat eivät kirjaudu sellaisia pikseleitä vastaan, jotka ovat itse asiassa kunnossa. KatsoCSI.ioctl.
- csi.IOCTL_GENX320_READ_EVENTS_RAW: int¶
Palauttaa raa’an tapahtumakehyksen
image.Image-oliona GENX320:lta, tapahtumat edelleen sirun alkuperäisessä pakatussa koodauksessa — hyödyllinen, jos haluat välittää raa’an virran PC:lle offline-purkua varten sen sijaan, että käsittelisit sen kamerassa. KatsoCSI.ioctl.
- csi.PIX_OFF_EVENT: int¶
GENX320:n tapahtuman tyyppi (sarake
[0]) — pikseli havaitsi kirkkauden vähenemisen (negatiivisen kontrastin kynnys ylittyi). Sarakkeet[4]/[5]kantavat pikselin X/Y:n.
- csi.PIX_ON_EVENT: int¶
GENX320:n tapahtuman tyyppi (sarake
[0]) — pikseli havaitsi kirkkauden lisääntymisen (positiivisen kontrastin kynnys ylittyi). Sarakkeet[4]/[5]kantavat pikselin X/Y:n.
- csi.RST_TRIGGER_RISING: int¶
GENX320:n tapahtuman tyyppi (sarake
[0]) — pikselin nollausliipaisin, nouseva reuna. X/Y eivät ole käytössä. Laiteohjelmisto ei generoi tätä tällä hetkellä.
- csi.RST_TRIGGER_FALLING: int¶
GENX320:n tapahtuman tyyppi (sarake
[0]) — pikselin nollausliipaisin, laskeva reuna. X/Y eivät ole käytössä. Laiteohjelmisto ei generoi tätä tällä hetkellä.