2024-简单点-picamera2如何选取某些区域对焦

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

必须知道的参数

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值