picamera2选取某些区域对焦
必须知道的参数
ScalerCropMaximum
scaler_crop_maximum = picam2.camera_properties['ScalerCropMaximum']

设定的参数不同,比如你想要的展示图片的大小;camera会自动选择【参考的图像画幅区域:我们这里叫激活区域吧】,获取这个区域后,进行缩放裁剪展示给你 所需要的大小。
比如某摄像头全分辨率是4608 x 2592,你先预览一个实时窗口,大小为1080x720
展示·


关注properties:(768,432,3072,1728)
意思应该是,取得全画幅4608 x 2592中,以(768,432)为左上点,以(3072,1728)为宽高的区域,
然后进行缩放为1080x720
AfMetering
通过ROI区域对焦

picam2.controls.set_controls( {
"AfMetering" : controls.AfMeteringEnum.Windows} )
AfWindows
以ScalerCropMaximum的图像为坐标系进行操作,找到窗口,进行对焦。

picam2.set_controls({
"AfWindows": [adjustedcoord]})
总结
先获取ScalerCropMaximum,得到激活区域。
[如果需要选择对焦窗口,在这里以ScalerCropMaximum为坐标系进行操作]
然后进行scaler缩放到你需要的尺寸,
然后展示display
课外参考
https://github.com/raspberrypi/picamera2/issues/915
import time
sys.path.append('/usr/lib/python3/dist-packages/')
from picamera2 import Picamera2, Preview, MappedArray
from libcamera import controls
picam2 = Picamera2()
import cv2
import numpy as np
# Set display size and create variables for later
lores = (1280, 800)
width, height = lores
# start cam
picam2.start_preview(Preview.DRM, x=100, y=100, width=1280, height=800

本文介绍了如何在picamera2中使用ScalerCropMaximum参数确定显示区域,并结合AfMetering和AfWindows进行对焦控制。通过ROI区域选择和坐标转换,实现定制化预览和对焦功能。
最低0.47元/天 解锁文章
1602

被折叠的 条评论
为什么被折叠?



