class TVDisplay – TV Shield -ohjain¶
TVDisplay-luokka ohjaa OpenMV TV Shieldiä, joka muuntaa RGB565-kehyspuskurin NTSC-komposiittivideosignaaliksi (352x240, 60 kenttää/s lomitettuna), joka sopii mille tahansa televisiolle tai analogiselle videonäytölle.
Kahta shield-versiota tuetaan:
Langallinen TV Shield, joka tuo komposiittisignaalin yhteen RCA-liittimeen.
Wireless TV Shield, joka syöttää saman signaalin 2,4 GHz:n analogiseen videolähettimeen. Vastaanottimen kanava (1–8) valitaan ajon aikana metodilla
ioctl()käyttäen arvoadisplay.IOCTL_CHANNEL; kunnes tämä kutsu on tehty, mitään kanavaa ei ole valittu.
Resoluutio ja kehystys ovat kiinteät – TVDisplay ei ota framesize-argumenttia. Kehykset esitetään välittämällä image.Image metodille write(), joka hoitaa skaalauksen, ROI:n, paletin ja suuntamuunnokset sisäisesti.
Esimerkkikäyttö:
import csi
import display
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.SIF) # 352x240, matches the TV output
tv = display.TVDisplay()
while True:
tv.write(csi0.snapshot())
Konstruktorit¶
- class display.TVDisplay(triple_buffer: bool = True)¶
triple_bufferJos True, tekee näytön päivityksistä ei-estäviä sillä hinnalla, että näytön koko vie kolminkertaisesti RAM-muistia. Oletus riippuu kortista.- deinit() None¶
Vapauttaa luokan käyttämät I/O-nastat ja RAM-muistin. Tätä kutsutaan automaattisesti tuhoamisen yhteydessä.
- write(image: image.Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 256, color_palette: int | 'image.Image' | None = None, alpha_palette: 'image.Image' | None = None, hint: int = 0) None¶
Näyttää kuvan
image, jonka vasen yläkulma alkaa sijainnista x, y.x_scaleohjaa, kuinka paljon näytettävää kuvaa skaalataan x-suunnassa (liukuluku). Jos arvo on negatiivinen, kuva peilataan vaakasuunnassa.y_scaleohjaa, kuinka paljon näytettävää kuvaa skaalataan y-suunnassa (liukuluku). Jos arvo on negatiivinen, kuva peilataan pystysuunnassa.roion näytettävän kuvan kohdealueen suorakulmiomonikko (x, y, w, h).rgb_channelon RGB-kanava (0=R, G=1, B=2), joka poimitaan RGB565-kuvasta ja esitetään näytöllä.alphaohjaa, kuinka läpinäkymätön kuva on. Arvo 256 näyttää läpinäkymättömän kuvan, kun taas 256:ta pienempi arvo tuottaa mustan läpinäkyvän kuvan. 0 tuottaa täysin mustan kuvan.color_palettejos ei-1, voi olla väripaletin enum-arvo tai yhteensä 256 pikselin RGB565-kuva, jota käytetään värihakutauluna syötekuvan harmaasävyarvolle.alpha_palettejos ei-1, voi olla yhteensä 256 pikselin GRAYSCALE-kuva, jota käytetään alfapalettina, joka moduloi syötekuvanalpha-arvoa pikselikohtaisesti.hintlooginen TAI lipuista:image.AREA: Käytä aluepohjaista skaalausta pienennettäessä.image.BILINEAR: Käytä bilineaarista skaalausta.image.BICUBIC: Käytä bikuubista skaalausta.image.CENTER: Keskitä kuva näytölle (skaalauksen jälkeen).image.HMIRROR: Peilaa kuva vaakasuunnassa.image.VFLIP: Käännä kuva pystysuunnassa.image.TRANSPOSE: Transponoi kuva (vaihda x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Suoritargb_channel-poiminta ennen skaalausta.image.APPLY_COLOR_PALETTE_FIRST: Suoritacolor_paletteennen skaalausta.image.SCALE_ASPECT_KEEP: Skaalaa mahtumaan näytön sisään.image.SCALE_ASPECT_EXPAND: Skaalaa täyttämään näyttö (rajaten).image.SCALE_ASPECT_IGNORE: Skaalaa täyttämään näyttö (venyttäen).image.ROTATE_90: Kierrä 90 astetta (VFLIP | TRANSPOSE).image.ROTATE_180: Kierrä 180 astetta (HMIRROR | VFLIP).image.ROTATE_270: Kierrä 270 astetta (HMIRROR | TRANSPOSE).
- clear(display_off: bool = False) None¶
Tyhjentää näytön mustaksi.
display_offhyväksytään API-yhteensopivuuden vuoksi muiden näyttöluokkien kanssa, ja se jätetään huomiotta.
- ioctl(cmd: int, *args) object¶
Yleinen ioctl-aloituspiste.
Anna
display.IOCTL_CHANNELarvoksicmdasettaaksesi tai hakeaksesi langattoman TV-shieldin lähetyskanavan. Toisella argumentilla (1-8) kanava asetetaan; ilman toista argumenttia palautetaan nykyinen kanava. Mitään kanavaa ei ole valittu, ennen kuin ensimmäinen asetuskutsu on tehty.