mjpeg — mjpeg snimanje

Modul mjpeg koristi se za mjpeg snimanje. Koristite ga za snimanje dugih videoisječaka kao komprimiranih podataka slike. Za kratke isječke koristite gif.

Primjer upotrebe:

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 – Mjpeg snimač

class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)

Stvara Mjpeg objekt u koji možete dodavati sličice.

path je putanja datotečnog sustava na koju se sprema mjpeg snimka.

width je horizontalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je širina glavnog međuspremnika slike.

height je vertikalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je visina glavnog međuspremnika slike.

is_closed() bool

Vraća True ako je datoteka zatvorena. Više se ne mogu zapisivati podaci u zatvorenu datoteku.

width() int

Vraća horizontalnu razlučivost mjpeg datoteke.

height() int

Vraća vertikalnu razlučivost mjpeg datoteke.

count() int

Vraća broj sličica zapisanih u mjpeg datoteku.

size() int

Vraća veličinu mjpeg datoteke u bajtovima.

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

Dodaje image u mjpeg snimku. Slika se automatski skalira uz očuvanje omjera stranica na razlučivost navedenu pri stvaranju datoteke. Prihvaća se bilo koji format slike; ova metoda dekomprimira, skalira/pretvara i ponovno komprimira po potrebi.

roi je n-torka pravokutnika područja interesa (x, y, w, h) od image koju treba kopirati. Zadano je cijela slika.

rgb_channel je RGB kanal (0=R, 1=G, 2=B) koji se izdvaja iz izvorne RGB565 slike i prikazuje u sivim tonovima. -1 (zadano) onemogućuje izdvajanje kanala.

alpha (0-255) kontrolira koliko izvorne slike se stapa u odredište. 255 je neprozirno; niže vrijednosti stapaju s crnom pozadinom; 0 rezultira crnom sličicom.

color_palette je ili enum palete boja (npr. image.PALETTE_RAINBOW) ili 256-pikselna RGB565 slika koja se koristi kao tablica za traženje boja na vrijednosti sivih tonova izvorne slike. Primjenjuje se nakon izdvajanja rgb_channel.

alpha_palette je 256-pikselna slika u sivim tonovima koja se koristi kao tablica za traženje alfe koja modulira alpha po izvornom pikselu na temelju njegove vrijednosti sivih tonova. 255 je neprozirno; 0 je prozirno. Primjenjuje se nakon izdvajanja rgb_channel.

hint je logički OR sljedećeg:

quality (0-100) je kvaliteta JPEG kompresije koja se koristi za izvorne slike koje nisu 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 za Mjpeg.add_frame().

sync() None

Prazni mjpeg datoteku na disk uz zadržavanje otvorenom za daljnje zapisivanje. Pozivajte povremeno kako bi se osiguralo spremanje podataka.

close() None

Finalizira mjpeg snimku. Mora se pozvati nakon završetka snimanja kako bi datoteka bila pregledljiva.