class TVDisplay – TV Shield meghajtó¶
A TVDisplay osztály az OpenMV TV Shieldet vezérli, amely egy RGB565 képkocka-puffert NTSC kompozit videojellé alakít (352x240, 60 mező/s váltottsoros), amely bármely televízióhoz vagy analóg videomonitorhoz alkalmas.
Két shield-változat támogatott:
A vezetékes TV Shield, amely a kompozit jelet egyetlen RCA aljzaton teszi elérhetővé.
A Wireless TV Shield, amely ugyanazt a jelet egy 2,4 GHz-es analóg videoadóba táplálja. A vevő csatornája (1–8) futásidőben választható ki a
ioctl()metódussal adisplay.IOCTL_CHANNELsegítségével; amíg ezt a hívást nem teszik meg, addig nincs csatorna kiválasztva.
A felbontás és a képkockázás rögzített – a TVDisplay nem fogad framesize argumentumot. A képkockákat egy image.Image átadásával jelenítik meg a write() metódusnak, amely belsőleg kezeli a méretezést, a ROI-t, a palettát és a tájolási transzformációkat.
Példa a használatra:
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())
Konstruktorok¶
- class display.TVDisplay(triple_buffer: bool = True)¶
triple_bufferHa True, akkor a képernyő frissítései nem blokkolóvá válnak, a kijelző méretének 3-szorosát kitevő RAM árán. Az alapértelmezés a kártyától függ.- deinit() None¶
Felszabadítja az osztály által használt I/O lábakat és RAM-ot. Ez automatikusan meghívásra kerül megsemmisítéskor.
- 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¶
Megjelenít egy
imageképet, amelynek bal felső sarka az x, y helyen kezdődik.Az
x_scaleszabályozza, hogy a megjelenített kép mennyire legyen átméretezve x irányban (float). Ha ez az érték negatív, a kép vízszintesen tükröződik.Az
y_scaleszabályozza, hogy a megjelenített kép mennyire legyen átméretezve y irányban (float). Ha ez az érték negatív, a kép függőlegesen tükröződik.A
roia megjelenítendő kép érdeklődési terület téglalapját jelölő (x, y, w, h) tuple.Az
rgb_channelaz RGB565 képből kinyerendő és a kijelzőn megjelenítendő RGB csatorna (0=R, G=1, B=2).Az
alphaszabályozza, hogy a kép mennyire átlátszatlan. A 256 érték átlátszatlan képet jelenít meg, míg a 256-nál kisebb érték fekete, áttetsző képet eredményez. A 0 tökéletesen fekete képet eredményez.A
color_paletteha nem-1, akkor lehet egy színpaletta-enum vagy egy összesen 256 képpontos RGB565 kép, amely színkikereső táblaként szolgál a bemeneti kép szürkeárnyalatos értéke alapján.Az
alpha_paletteha nem-1, akkor lehet egy összesen 256 képpontos szürkeárnyalatos kép, amely alfa-palettaként szolgál, és képpontonkénti szinten modulálja a bemeneti képalphaértékét.A
hinta következő jelzők logikai VAGY-a:image.AREA: Területalapú méretezés használata kicsinyítéskor.image.BILINEAR: Bilineáris méretezés használata.image.BICUBIC: Bikubikus méretezés használata.image.CENTER: A kép középre igazítása a kijelzőn (a méretezés után).image.HMIRROR: A kép vízszintes tükrözése.image.VFLIP: A kép függőleges tükrözése.image.TRANSPOSE: A kép transzponálása (x/y felcserélése).image.EXTRACT_RGB_CHANNEL_FIRST: Azrgb_channelkinyerésének alkalmazása a méretezés előtt.image.APPLY_COLOR_PALETTE_FIRST: Acolor_palettealkalmazása a méretezés előtt.image.SCALE_ASPECT_KEEP: Méretezés a kijelzőbe illesztéshez.image.SCALE_ASPECT_EXPAND: Méretezés a kijelző kitöltéséhez (levágással).image.SCALE_ASPECT_IGNORE: Méretezés a kijelző kitöltéséhez (nyújtással).image.ROTATE_90: Forgatás 90 fokkal (VFLIP | TRANSPOSE).image.ROTATE_180: Forgatás 180 fokkal (HMIRROR | VFLIP).image.ROTATE_270: Forgatás 270 fokkal (HMIRROR | TRANSPOSE).
- clear(display_off: bool = False) None¶
Feketére törli a képernyőt.
A
display_offargumentumot a más kijelzőosztályokkal való API-kompatibilitás érdekében fogadja el, de figyelmen kívül hagyja.
- ioctl(cmd: int, *args) object¶
Általános ioctl belépési pont.
Adja át a
display.IOCTL_CHANNELértéketcmdgyanánt a vezeték nélküli TV shield sugárzási csatornájának beállításához vagy lekérdezéséhez. Második argumentummal (1-8) a csatorna beállításra kerül; második argumentum nélkül a jelenlegi csatorna kerül visszaadásra. Az első beállítási hívásig nincs csatorna kiválasztva.