Я прочитал эту великолепную документацию (https://picamera.readthedocs.io/en/release-1.13/fov.html#sensor -modes ) и попытался захватить изображения с максимальным разрешением через видеопорт. Следующий скрипт предоставляет простой тест:
from picamera.array import PiRGBArray
from picamera import PiCamera
import numpy as np
def compare_stillVsVidPort(camera=None):
if camera==None:
camera = PiCamera()
images = []
mode_sizes = [[800,480],[1920,1080],[3280,2464],[3280,2464],[1640,1232],[1640,922],[1280,720],[640,480]]
m=2
if not camera._get_resolution() == mode_sizes[m]:
camera.resolution = mode_sizes[m]
# test video port
rawCapture = PiRGBArray(camera,size=mode_sizes[m])
camera.capture(rawCapture, format="bgr", use_video_port=True, bayer=False)
images.append(rawCapture.array)
# test still_port
rawCapture = PiRGBArray(camera,size=mode_sizes[m])
camera.capture(rawCapture, format="bgr", use_video_port=False, bayer=False)
images.append(rawCapture.array)
# display results
im_means = [np.mean(m) for m in images]
im_vars = [np.var(m) for m in images]
print("Means={}\nVars={}".format(im_means,im_vars))
compare_stillVsVidPort()
Оценка на RasPi 4 с Cam-Module v2.1 и новейшими python -пакетами + системные драйверы на стандартном Raspbian дает что-то вроде:
Means=[0.0, 118.44878189011192]
Vars=[0.0, 3813.104862715143]
Как получить полносенсорный кадр в максимальном разрешении даже для видеопорта?