mjpeg — mjpeg kaydı¶
mjpeg modülü mjpeg kaydı için kullanılır. Uzun video kliplerini sıkıştırılmış görüntü verisi olarak kaydetmek için bunu kullanın. Kısa klipler için gif kullanın.
Örnek kullanım:
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 kaydedici¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Çerçeve ekleyebileceğiniz bir Mjpeg nesnesi oluşturur.
path, mjpeg kaydının kaydedileceği dosya sistemi yoludur.width, mjpeg dosyasının yatay çözünürlüğüdür. Belirtilmediğinde ana çerçeve arabelleği (frame buffer) genişliğine varsayılan olarak ayarlanır.height, mjpeg dosyasının dikey çözünürlüğüdür. Belirtilmediğinde ana çerçeve arabelleği (frame buffer) yüksekliğine varsayılan olarak ayarlanır.- is_closed() bool¶
Dosya kapatılmışsa
Truedöndürür. Kapatılmış bir dosyaya daha fazla veri yazılamaz.
- 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¶
mjpeg kaydına
imageekler. Görüntü, en boy oranı korunarak dosya oluşturulduğunda belirtilen çözünürlüğe otomatik olarak ölçeklendirilir. Her görüntü biçimi kabul edilir; bu yöntem gerektiğinde sıkıştırmayı açar, ölçekler/dönüştürür ve yeniden sıkıştırır.roi,imageöğesinin kopyalanacak ilgi bölgesi (ROI) dikdörtgen demetidir(x, y, w, h). Varsayılan olarak görüntünün tamamıdır.rgb_channel, bir RGB565 kaynak görüntüsünden çıkarılıp gri tonlama olarak işlenecek RGB kanalıdır (0=R, 1=G, 2=B).-1(varsayılan) kanal çıkarmayı devre dışı bırakır.alpha(0-255), kaynak görüntünün ne kadarının hedefe karıştırılacağını denetler.255opaktır; daha düşük değerler siyah bir arka planla karışır;0siyah bir çerçeveyle sonuçlanır.color_palette, ya bir renk paleti enum’udur (ör.image.PALETTE_RAINBOW) ya da kaynak görüntünün gri tonlama değeri üzerinde renk arama tablosu olarak kullanılan 256 piksellik bir RGB565 görüntüsüdür.rgb_channelçıkarımından sonra uygulanır.alpha_palette, gri tonlama değerine göre kaynak piksel başınaalphadeğerini modüle eden bir alfa arama tablosu olarak kullanılan 256 piksellik bir gri tonlama görüntüsüdür.255opaktır;0saydamdır.rgb_channelçıkarımından sonra uygulanır.hint, aşağıdakilerin mantıksal OR işlemidir:image.AREA: Küçültürken alan ölçeklendirmesi kullanır.image.BILINEAR: Çift doğrusal (bilinear) ölçeklendirme kullanır.image.BICUBIC: Çift kübik (bicubic) ölçeklendirme kullanır.image.CENTER: Görüntüyü hedefte ortalar.image.HMIRROR: Görüntüyü yatay olarak aynalar.image.VFLIP: Görüntüyü dikey olarak çevirir.image.TRANSPOSE: Görüntüyü devrik alır (x/y değiştirilir).image.EXTRACT_RGB_CHANNEL_FIRST:rgb_channelöğesini ölçeklendirmeden önce uygular.image.APPLY_COLOR_PALETTE_FIRST:color_paletteöğesini ölçeklendirmeden önce uygular.image.SCALE_ASPECT_KEEP: Hedefin içine sığacak şekilde ölçekler.image.SCALE_ASPECT_EXPAND: Hedefi dolduracak şekilde ölçekler (kırpar).image.SCALE_ASPECT_IGNORE: Hedefi dolduracak şekilde ölçekler (gerer).image.ROTATE_90: 90 derece döndürür (VFLIP | TRANSPOSE).image.ROTATE_180: 180 derece döndürür (HMIRROR | VFLIP).image.ROTATE_270: 270 derece döndürür (HMIRROR | TRANSPOSE).
quality(0-100), JPEG olmayan kaynak görüntüler için kullanılan JPEG sıkıştırma kalitesidir.
- 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¶
Mjpeg.add_frame()için takma ad.