mjpeg — mjpeg-opname¶
De mjpeg-module wordt gebruikt voor mjpeg-opname. Gebruik deze om lange videofragmenten op te nemen als gecomprimeerde afbeeldingsdata. Gebruik gif voor korte fragmenten.
Voorbeeldgebruik:
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-recorder¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Maakt een Mjpeg-object aan waaraan je frames kunt toevoegen.
pathis het bestandssysteempad waar de mjpeg-opname wordt opgeslagen.widthis de horizontale resolutie van het mjpeg-bestand. Standaard de breedte van de hoofd-framebuffer wanneer niet opgegeven.heightis de verticale resolutie van het mjpeg-bestand. Standaard de hoogte van de hoofd-framebuffer wanneer niet opgegeven.- is_closed() bool¶
Geeft
Trueterug als het bestand is gesloten. Er kan geen data meer naar een gesloten bestand worden geschreven.
- 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¶
Voegt
imagetoe aan de mjpeg-opname. De afbeelding wordt automatisch geschaald met behoud van de beeldverhouding naar de resolutie die bij het aanmaken van het bestand is opgegeven. Elk afbeeldingsformaat wordt geaccepteerd; deze methode decomprimeert, schaalt/converteert en hercomprimeert zo nodig.roiis de tuple van het aandachtsgebied-rechthoek(x, y, w, h)vanimageom te kopiëren. Standaard de hele afbeelding.rgb_channelis het RGB-kanaal (0=R, 1=G, 2=B) dat uit een RGB565-bronafbeelding wordt geëxtraheerd en in grijswaarden wordt weergegeven.-1(standaard) schakelt kanaalextractie uit.alpha(0-255) bepaalt hoeveel van de bronafbeelding in de bestemming wordt gemengd.255is ondoorzichtig; lagere waarden mengen met een zwarte achtergrond;0resulteert in een zwart frame.color_paletteis ofwel een kleurenpalet-enum (bijv.image.PALETTE_RAINBOW) of een RGB565-afbeelding van 256 pixels die wordt gebruikt als kleuropzoektabel op de grijswaarde van de bronafbeelding. Toegepast nargb_channel-extractie.alpha_paletteis een grijswaardenafbeelding van 256 pixels die wordt gebruikt als alfa-opzoektabel diealphaper bronpixel moduleert op basis van diens grijswaarde.255is ondoorzichtig;0is transparant. Toegepast nargb_channel-extractie.hintis een logische OR van:image.AREA: Gebruik area-schaling bij het verkleinen.image.BILINEAR: Gebruik bilineaire schaling.image.BICUBIC: Gebruik bicubische schaling.image.CENTER: Centreer de afbeelding op de bestemming.image.HMIRROR: Spiegel de afbeelding horizontaal.image.VFLIP: Keer de afbeelding verticaal om.image.TRANSPOSE: Transponeer de afbeelding (verwissel x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Pasrgb_channeltoe vóór het schalen.image.APPLY_COLOR_PALETTE_FIRST: Pascolor_palettetoe vóór het schalen.image.SCALE_ASPECT_KEEP: Schaal om binnen de bestemming te passen.image.SCALE_ASPECT_EXPAND: Schaal om de bestemming te vullen (snijdt bij).image.SCALE_ASPECT_IGNORE: Schaal om de bestemming te vullen (rekt uit).image.ROTATE_90: Roteer 90 graden (VFLIP | TRANSPOSE).image.ROTATE_180: Roteer 180 graden (HMIRROR | VFLIP).image.ROTATE_270: Roteer 270 graden (HMIRROR | TRANSPOSE).
quality(0-100) is de JPEG-compressiekwaliteit die wordt gebruikt voor niet-JPEG-bronafbeeldingen.
- 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 voor
Mjpeg.add_frame().