class TVDisplay – TV Shield Sürücüsü¶
TVDisplay sınıfı, bir RGB565 çerçeve arabelleğini herhangi bir televizyon veya analog video monitörüne uygun bir NTSC kompozit video sinyaline (352x240, 60 alan/s geçmeli) dönüştüren OpenMV TV Shield’i sürer.
İki shield türü desteklenir:
Kompozit sinyali tek bir RCA jakı üzerinden sunan kablolu TV Shield.
Aynı sinyali 2,4 GHz analog video vericisine besleyen Wireless TV Shield. Alıcı kanalı (1–8) çalışma zamanında
display.IOCTL_CHANNELileioctl()kullanılarak seçilir; bu çağrı yapılana kadar hiçbir kanal seçili olmaz.
Çözünürlük ve çerçeveleme sabittir – TVDisplay bir framesize argümanı almaz. Çerçeveler, ölçekleme, ROI, palet ve yönlendirme dönüşümlerini dahili olarak işleyen write() öğesine bir image.Image iletilerek sunulur.
Örnek kullanım:
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())
Yapıcılar¶
- class display.TVDisplay(triple_buffer: bool = True)¶
triple_bufferTrue ise, RAM’de ekran boyutunun 3 katı maliyetiyle ekran güncellemelerini bloklamayan hale getirir. Varsayılan değer karta bağlıdır.- deinit() None¶
Sınıf tarafından kullanılan G/Ç pinlerini ve RAM’i serbest bırakır. Bu, yok etme sırasında otomatik olarak çağrılır.
- 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¶
Sol üst köşesi x, y konumundan başlayan bir
imagegörüntüsünü görüntüler.x_scalegörüntülenen görüntünün x yönünde ne kadar ölçekleneceğini kontrol eder (float). Bu değer negatifse görüntü yatay olarak çevrilir.y_scalegörüntülenen görüntünün y yönünde ne kadar ölçekleneceğini kontrol eder (float). Bu değer negatifse görüntü dikey olarak çevrilir.roigörüntülenecek görüntünün ilgi bölgesi dikdörtgeni demetidir (x, y, w, h).rgb_channelbir RGB565 görüntüsünden çıkarılıp ekranda işlenecek RGB kanalıdır (0=R, G=1, B=2).alphagörüntünün ne kadar opak olduğunu kontrol eder. 256 değeri opak bir görüntü gösterirken, 256’dan düşük bir değer siyah saydam bir görüntü üretir. 0 tamamen siyah bir görüntüyle sonuçlanır.color_palette-1değilse, giriş görüntüsünün gri tonlama değeri üzerinde renk arama tablosu olarak kullanılacak bir renk paleti enum’u veya toplam 256 piksellik bir RGB565 görüntüsü olabilir.alpha_palette-1değilse, giriş görüntüsününalphadeğerini piksel başına modüle eden bir alfa paleti olarak kullanılacak toplam 256 piksellik bir GRAYSCALE görüntüsü olabilir.hintaşağıdaki bayrakların mantıksal VEYA işlemidir:image.AREA: Küçültme yaparken alan ölçeklemesi kullanır.image.BILINEAR: Çift doğrusal ölçekleme kullanır.image.BICUBIC: Çift kübik ölçekleme kullanır.image.CENTER: Görüntüyü ekranda ortalar (ölçeklemeden sonra).image.HMIRROR: Görüntüyü yatay olarak yansıtır.image.VFLIP: Görüntüyü dikey olarak çevirir.image.TRANSPOSE: Görüntünün devriğini alır (x/y’yi değiştirir).image.EXTRACT_RGB_CHANNEL_FIRST:rgb_channelçıkarmasını ölçeklemeden önce uygular.image.APPLY_COLOR_PALETTE_FIRST:color_paletteöğesini ölçeklemeden önce uygular.image.SCALE_ASPECT_KEEP: Ekranın içine sığacak şekilde ölçekler.image.SCALE_ASPECT_EXPAND: Ekranı dolduracak şekilde ölçekler (kırparak).image.SCALE_ASPECT_IGNORE: Ekranı dolduracak şekilde ölçekler (gererek).image.ROTATE_90: 90 derece döndürür (VFLIP | TRANSPOSE).image.ROTATE_180: 180 derece döndürür (HMIRROR | VFLIP).image.ROTATE_270: 270 derece döndürür (HMIRROR | TRANSPOSE).
- clear(display_off: bool = False) None¶
Ekranı siyaha temizler.
display_offdiğer ekran sınıflarıyla API uyumluluğu için kabul edilir ve yok sayılır.
- ioctl(cmd: int, *args) object¶
Genel ioctl giriş noktası.
Kablosuz TV shield yayın kanalını ayarlamak veya almak için
cmdolarakdisplay.IOCTL_CHANNELiletin. İkinci bir argümanla (1-8) kanal ayarlanır; ikinci argüman olmadan mevcut kanal döndürülür. İlk ayarlama çağrısı yapılana kadar hiçbir kanal seçili olmaz.