mjpeg — הקלטת mjpeg¶
המודול mjpeg משמש להקלטת mjpeg. השתמשו בו כדי להקליט קטעי וידאו ארוכים כנתוני תמונה דחוסים. השתמשו ב-gif לקטעים קצרים.
דוגמת שימוש:
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¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
יוצר אובייקט Mjpeg שאליו תוכלו להוסיף פריימים.
pathהוא נתיב מערכת הקבצים שאליו תישמר הקלטת ה-mjpeg.widthהיא הרזולוציה האופקית של קובץ ה-mjpeg. ברירת המחדל היא רוחב חוצץ הפריימים הראשי (frame buffer) כאשר לא צוין.heightהיא הרזולוציה האנכית של קובץ ה-mjpeg. ברירת המחדל היא גובה חוצץ הפריימים הראשי (frame buffer) כאשר לא צוין.- 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¶
מצרף את
imageלהקלטת ה-mjpeg. התמונה מותאמת בקנה מידה אוטומטית תוך שמירה על יחס הממדים לרזולוציה שצוינה בעת יצירת הקובץ. כל תבנית תמונה מתקבלת; שיטה זו מבצעת דחיסה לאחור, התאמת קנה מידה/המרה, ודחיסה מחדש לפי הצורך.roiהוא רכיב הצמד (tuple) של מלבן אזור העניין(x, y, w, h)שלimageלהעתקה. ברירת המחדל היא התמונה כולה.rgb_channelהוא ערוץ ה-RGB (0=R, 1=G, 2=B) לחילוץ מתמונת מקור RGB565 ולעיבוד בגווני אפור.-1(ברירת מחדל) מבטל את חילוץ הערוץ.alpha(0-255) שולט בכמה מתמונת המקור למזג אל היעד.255הוא אטום; ערכים נמוכים יותר ממזגים עם רקע שחור;0מביא לפריים שחור.color_paletteהוא או enum של פלטת צבעים (לדוגמהimage.PALETTE_RAINBOW) או תמונת RGB565 בת 256 פיקסלים המשמשת כטבלת חיפוש צבעים על ערך גווני האפור של תמונת המקור. מיושם לאחר חילוץrgb_channel.alpha_paletteהיא תמונת גווני אפור בת 256 פיקסלים המשמשת כטבלת חיפוש אלפא הממדלת אתalphaלכל פיקסל מקור בהתבסס על ערך גווני האפור שלו.255הוא אטום;0שקוף. מיושם לאחר חילוץrgb_channel.hintהוא OR לוגי של:image.AREA: שימוש בהתאמת קנה מידה לפי שטח (area) בעת הקטנה.image.BILINEAR: שימוש בהתאמת קנה מידה דו-לינארית.image.BICUBIC: שימוש בהתאמת קנה מידה דו-קובית.image.CENTER: מרכוז התמונה על היעד.image.HMIRROR: שיקוף אופקי של התמונה.image.VFLIP: היפוך אנכי של התמונה.image.TRANSPOSE: שחלוף (transpose) התמונה (החלפת x/y).image.EXTRACT_RGB_CHANNEL_FIRST: יישוםrgb_channelלפני התאמת קנה המידה.image.APPLY_COLOR_PALETTE_FIRST: יישוםcolor_paletteלפני התאמת קנה המידה.image.SCALE_ASPECT_KEEP: התאמת קנה מידה כך שתיכנס בתוך היעד.image.SCALE_ASPECT_EXPAND: התאמת קנה מידה כך שתמלא את היעד (חיתוך).image.SCALE_ASPECT_IGNORE: התאמת קנה מידה כך שתמלא את היעד (מתיחה).image.ROTATE_90: סיבוב ב-90 מעלות (VFLIP | TRANSPOSE).image.ROTATE_180: סיבוב ב-180 מעלות (HMIRROR | VFLIP).image.ROTATE_270: סיבוב ב-270 מעלות (HMIRROR | TRANSPOSE).
quality(0-100) היא איכות הדחיסה של JPEG המשמשת עבור תמונות מקור שאינן 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) ל-
Mjpeg.add_frame().