mjpeg — înregistrare mjpeg¶
Modulul mjpeg este folosit pentru înregistrarea mjpeg. Folosiți-l pentru a înregistra clipuri video lungi sub formă de date de imagine comprimate. Folosiți gif pentru clipuri scurte.
Exemplu de utilizare:
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()
clasa Mjpeg – înregistrator Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Creează un obiect Mjpeg la care puteți adăuga cadre.
patheste calea din sistemul de fișiere unde se salvează înregistrarea mjpeg.widtheste rezoluția orizontală a fișierului mjpeg. Implicit este lățimea tamponului de cadre (frame buffer) principal când nu este specificată.heighteste rezoluția verticală a fișierului mjpeg. Implicit este înălțimea tamponului de cadre (frame buffer) principal când nu este specificată.- is_closed() bool¶
Returnează
Truedacă fișierul a fost închis. Într-un fișier închis nu mai pot fi scrise date.
- 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¶
Adaugă
imagela înregistrarea mjpeg. Imaginea este scalată automat, păstrând raportul de aspect, la rezoluția specificată la crearea fișierului. Este acceptat orice format de imagine; această metodă decomprimă, scalează/convertește și recomprimă după cum este necesar.roieste tuplul dreptunghiular al regiunii de interes(x, y, w, h)dinimagecare trebuie copiat. Implicit este întreaga imagine.rgb_channeleste canalul RGB (0=R, 1=G, 2=B) de extras dintr-o imagine sursă RGB565 și de redat în tonuri de gri.-1(implicit) dezactivează extragerea canalului.alpha(0-255) controlează cât de mult din imaginea sursă se amestecă în destinație.255este opac; valorile mai mici se amestecă cu un fundal negru;0produce un cadru negru.color_paletteeste fie o enumerare de paletă de culori (de ex.image.PALETTE_RAINBOW), fie o imagine RGB565 de 256 de pixeli folosită ca tabel de căutare de culori pe baza valorii în tonuri de gri a imaginii sursă. Aplicat după extragereargb_channel.alpha_paletteeste o imagine în tonuri de gri de 256 de pixeli folosită ca tabel de căutare alpha care moduleazăalphapentru fiecare pixel sursă în funcție de valoarea sa în tonuri de gri.255este opac;0este transparent. Aplicat după extragereargb_channel.hinteste un SAU logic format din:image.AREA: Folosește scalarea pe arie la micșorare.image.BILINEAR: Folosește scalarea biliniară.image.BICUBIC: Folosește scalarea bicubică.image.CENTER: Centrează imaginea pe destinație.image.HMIRROR: Oglindește imaginea pe orizontală.image.VFLIP: Răstoarnă imaginea pe verticală.image.TRANSPOSE: Transpune imaginea (interschimbă x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Aplicărgb_channelînainte de scalare.image.APPLY_COLOR_PALETTE_FIRST: Aplicăcolor_paletteînainte de scalare.image.SCALE_ASPECT_KEEP: Scalează pentru a încăpea în interiorul destinației.image.SCALE_ASPECT_EXPAND: Scalează pentru a umple destinația (decupează).image.SCALE_ASPECT_IGNORE: Scalează pentru a umple destinația (întinde).image.ROTATE_90: Rotește cu 90 de grade (VFLIP | TRANSPOSE).image.ROTATE_180: Rotește cu 180 de grade (HMIRROR | VFLIP).image.ROTATE_270: Rotește cu 270 de grade (HMIRROR | TRANSPOSE).
quality(0-100) este calitatea de compresie JPEG folosită pentru imaginile sursă 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 pentru
Mjpeg.add_frame().