mjpeg — registrazione mjpeg¶
Il modulo mjpeg è usato per la registrazione mjpeg. Usalo per registrare lunghe clip video come dati di immagine compressi. Usa gif per le clip brevi.
Esempio di utilizzo:
import csi
import mjpeg
import time
# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000)
# Create the mjpeg object.
m = mjpeg.Mjpeg("example.mjpeg")
# Record for 20 seconds.
start = time.ticks_ms()
while time.ticks_diff(time.ticks_ms(), start) < 20000:
m.add_frame(csi0.snapshot())
# Finalize.
m.close()
class Mjpeg – Registratore Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Crea un oggetto Mjpeg a cui puoi aggiungere frame.
pathè il percorso del file system in cui salvare la registrazione mjpeg.widthè la risoluzione orizzontale del file mjpeg. Per impostazione predefinita corrisponde alla larghezza del frame buffer principale quando non specificato.heightè la risoluzione verticale del file mjpeg. Per impostazione predefinita corrisponde all’altezza del frame buffer principale quando non specificato.- is_closed() bool¶
Restituisce
Truese il file è stato chiuso. Non è possibile scrivere altri dati su un file chiuso.
- add_frame(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None¶
Aggiunge
imagealla registrazione mjpeg. L’immagine viene scalata automaticamente preservando le proporzioni alla risoluzione specificata al momento della creazione del file. È accettato qualsiasi formato di immagine; questo metodo decomprime, scala/converte e ricomprime secondo necessità.roiè la tupla del rettangolo della regione di interesse(x, y, w, h)diimageda copiare. Per impostazione predefinita è l’intera immagine.rgb_channelè il canale RGB (0=R, 1=G, 2=B) da estrarre da un’immagine sorgente RGB565 e da renderizzare in scala di grigi.-1(predefinito) disabilita l’estrazione del canale.alpha(0-255) controlla quanto dell’immagine sorgente viene fusa nella destinazione.255è opaco; valori inferiori si fondono con uno sfondo nero;0produce un frame nero.color_paletteè un enum di palette di colori (es.image.PALETTE_RAINBOW) oppure un’immagine RGB565 di 256 pixel usata come tabella di lookup dei colori sul valore in scala di grigi dell’immagine sorgente. Applicata dopo l’estrazione dirgb_channel.alpha_paletteè un’immagine in scala di grigi di 256 pixel usata come tabella di lookup alpha che modulaalphaper ogni pixel sorgente in base al suo valore in scala di grigi.255è opaco;0è trasparente. Applicata dopo l’estrazione dirgb_channel.hintè un OR logico di:image.AREA: Usa lo scaling per area durante la riduzione di scala.image.BILINEAR: Usa lo scaling bilineare.image.BICUBIC: Usa lo scaling bicubico.image.CENTER: Centra l’immagine sulla destinazione.image.HMIRROR: Specchia orizzontalmente l’immagine.image.VFLIP: Capovolge verticalmente l’immagine.image.TRANSPOSE: Traspone l’immagine (scambia x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Applicargb_channelprima dello scaling.image.APPLY_COLOR_PALETTE_FIRST: Applicacolor_paletteprima dello scaling.image.SCALE_ASPECT_KEEP: Scala per adattarsi all’interno della destinazione.image.SCALE_ASPECT_EXPAND: Scala per riempire la destinazione (ritaglia).image.SCALE_ASPECT_IGNORE: Scala per riempire la destinazione (stira).image.ROTATE_90: Ruota di 90 gradi (VFLIP | TRANSPOSE).image.ROTATE_180: Ruota di 180 gradi (HMIRROR | VFLIP).image.ROTATE_270: Ruota di 270 gradi (HMIRROR | TRANSPOSE).
quality(0-100) è la qualità di compressione JPEG usata per le immagini sorgente non JPEG.
- write(image: image.Image, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: image.Image | None = None, alpha_palette: image.Image | None = None, hint: int = 0, quality: int = 90) None¶
Alias di
Mjpeg.add_frame().