mjpeg --- ghi hình mjpeg¶
Mô-đun mjpeg được dùng để ghi hình mjpeg. Sử dụng nó để ghi các video clip dài dưới dạng dữ liệu ảnh nén. Dùng gif cho các clip ngắn.
Ví dụ sử dụng:
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 -- Bộ ghi Mjpeg¶
- class mjpeg.Mjpeg(path: str, width: int | None = None, height: int | None = None)¶
Tạo một đối tượng Mjpeg mà bạn có thể thêm các khung hình vào.
pathlà đường dẫn hệ thống tệp để lưu bản ghi mjpeg.widthlà độ phân giải ngang của tệp mjpeg. Mặc định bằng chiều rộng của bộ đệm khung hình chính khi không được chỉ định.heightlà độ phân giải dọc của tệp mjpeg. Mặc định bằng chiều cao của bộ đệm khung hình chính khi không được chỉ định.- 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¶
Thêm
imagevào bản ghi mjpeg. Ảnh được tự động thu nhỏ trong khi giữ tỷ lệ khung hình về độ phân giải được chỉ định khi tệp được tạo. Mọi định dạng ảnh đều được chấp nhận; phương thức này giải nén, thu nhỏ/chuyển đổi, và nén lại khi cần thiết.roilà hình chữ nhật vùng quan tâm (ROI) dưới dạng tuple(x, y, w, h)củaimageđể sao chép. Mặc định là toàn bộ ảnh.rgb_channellà kênh RGB (0=R, 1=G, 2=B) để trích xuất từ ảnh nguồn RGB565 và hiển thị theo thang xám.-1(mặc định) tắt trích xuất kênh.alpha(0-255) kiểm soát mức độ hòa trộn của ảnh nguồn vào đích.255là mờ đục; các giá trị thấp hơn hòa trộn với nền đen;0tạo ra một khung hình đen.color_palettelà bảng màu dạng enum (ví dụ:image.PALETTE_RAINBOW) hoặc ảnh RGB565 256 điểm ảnh được dùng làm bảng tra cứu màu sắc dựa trên giá trị thang xám của ảnh nguồn. Được áp dụng sau khi trích xuấtrgb_channel.alpha_palettelà ảnh thang xám 256 điểm ảnh được dùng làm bảng tra cứu alpha điều chỉnhalphacho từng điểm ảnh nguồn dựa trên giá trị thang xám của nó.255là mờ đục;0là trong suốt. Được áp dụng sau khi trích xuấtrgb_channel.hintlà phép OR logic của:image.AREA: Sử dụng thu nhỏ theo diện tích khi thu nhỏ ảnh.image.BILINEAR: Sử dụng thu nhỏ song tuyến tính.image.BICUBIC: Sử dụng thu nhỏ song khối.image.CENTER: Căn giữa ảnh trên đích.image.HMIRROR: Lật ngang ảnh.image.VFLIP: Lật dọc ảnh.image.TRANSPOSE: Hoán vị ảnh (hoán đổi x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Áp dụngrgb_channeltrước khi thu nhỏ.image.APPLY_COLOR_PALETTE_FIRST: Áp dụngcolor_palettetrước khi thu nhỏ.image.SCALE_ASPECT_KEEP: Thu nhỏ để vừa trong đích.image.SCALE_ASPECT_EXPAND: Thu nhỏ để lấp đầy đích (cắt xén).image.SCALE_ASPECT_IGNORE: Thu nhỏ để lấp đầy đích (kéo giãn).image.ROTATE_90: Xoay 90 độ (VFLIP | TRANSPOSE).image.ROTATE_180: Xoay 180 độ (HMIRROR | VFLIP).image.ROTATE_270: Xoay 270 độ (HMIRROR | TRANSPOSE).
quality(0-100) là chất lượng nén JPEG được sử dụng cho các ảnh nguồn không phải 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¶
Bí danh cho
Mjpeg.add_frame().