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.
pathje putanja datotečnog sustava na koju se sprema mjpeg snimka.widthje horizontalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je širina glavnog međuspremnika slike.heightje vertikalna razlučivost mjpeg datoteke. Kada nije navedena, zadana je visina glavnog međuspremnika slike.- is_closed() bool¶
Vraća
Trueako je datoteka zatvorena. Više se ne mogu zapisivati podaci u zatvorenu datoteku.
- 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
imageu 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.roije n-torka pravokutnika područja interesa(x, y, w, h)odimagekoju treba kopirati. Zadano je cijela slika.rgb_channelje 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.255je neprozirno; niže vrijednosti stapaju s crnom pozadinom;0rezultira crnom sličicom.color_paletteje 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 izdvajanjargb_channel.alpha_paletteje 256-pikselna slika u sivim tonovima koja se koristi kao tablica za traženje alfe koja moduliraalphapo izvornom pikselu na temelju njegove vrijednosti sivih tonova.255je neprozirno;0je prozirno. Primjenjuje se nakon izdvajanjargb_channel.hintje logički OR sljedećeg:image.AREA: Koristi skaliranje po površini pri smanjivanju.image.BILINEAR: Koristi bilinearno skaliranje.image.BICUBIC: Koristi bikubično skaliranje.image.CENTER: Centrira sliku na odredištu.image.HMIRROR: Horizontalno zrcali sliku.image.VFLIP: Vertikalno preokreće sliku.image.TRANSPOSE: Transponira sliku (zamjenjuje x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Primjenjujergb_channelprije skaliranja.image.APPLY_COLOR_PALETTE_FIRST: Primjenjujecolor_paletteprije skaliranja.image.SCALE_ASPECT_KEEP: Skalira da stane unutar odredišta.image.SCALE_ASPECT_EXPAND: Skalira da ispuni odredište (obrezuje).image.SCALE_ASPECT_IGNORE: Skalira da ispuni odredište (rasteže).image.ROTATE_90: Rotira za 90 stupnjeva (VFLIP | TRANSPOSE).image.ROTATE_180: Rotira za 180 stupnjeva (HMIRROR | VFLIP).image.ROTATE_270: Rotira za 270 stupnjeva (HMIRROR | TRANSPOSE).
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().