树莓派 64 位 Bullseye 系统上 CSI Pi 相机曝光设置故障排除指南
2024-03-25 15:53:09
树莓派 64 位 Bullseye 系统上 CSI Pi 相机曝光设置故障排除
引言
Raspberry Pi CSI 摄像头是一种流行的附件,可用于各种图像处理和计算机视觉项目。在树莓派 64 位 Bullseye 系统上,CSI 相机的曝光设置可以用于控制图像的亮度和动态范围。然而,一些用户在更改这些设置时遇到了困难。本文将介绍已知的曝光设置问题及其可能的解决方案。
问题
在使用 Python 脚本和 libcamera 库时,用户无法更改树莓派 CSI 相机的曝光设置。尽管尝试了各种方法,包括设置 libcamera.AeEnable
、libcamera.ExposureValue
、libcamera.ExposureTime
和 libcamera.AnalogueGain
属性,曝光设置仍然保持不变。
使用 PiCamera 库时,还会出现 OSError: libmmal.so: cannot open shared object file: No such file or directory
错误。调查显示,在 64 位系统中,libmmal.so 库已不再存在。
解决方案
为了解决这些问题,需要采取以下步骤:
1. 使用较旧版本的 libcamera 库
对于 libcamera 问题,使用旧版本的库可以解决问题。可以使用以下命令安装 libcamera 1.5.0:
pip install libcamera==1.5.0
2. 使用 MMAL 接口
对于 PiCamera 问题,可以使用 MMAL(多媒体抽象层)接口直接访问相机。安装 MMAL 库:
sudo apt-get install libmmal
然后,使用以下 Python 脚本通过 MMAL 更改曝光:
import MMAL
camera = MMAL.Camera()
camera.set_exposure_mode(MMAL.CAMERA_EXPOSURE_MODE_MANUAL)
camera.set_exposure_value(4)
camera.set_exposure_time(100000)
camera.set_analogue_gain(-0.1)
camera.capture()
3. 使用 raspistill 实用程序
还可以使用 raspistill 实用程序通过命令行更改曝光设置。安装 raspistill:
sudo apt-get install libraspicam
然后,使用以下命令更改曝光:
raspistill -ex auto -ev 4 -awb auto -t 1000
结论
通过使用旧版本的 libcamera 库、使用 MMAL 接口或使用 raspistill 实用程序,可以解决在树莓派 64 位 Bullseye 系统上更改 CSI Pi 相机曝光设置的问题。这些方法提供了通过 Python 脚本或命令行控制曝光的替代方法。
常见问题解答
1. 为什么在 64 位系统中找不到 libmmal.so 库?
libmmal.so 库已不再包含在 64 位树莓派操作系统中。
2. MMAL 接口和 PiCamera 库之间有什么区别?
MMAL 接口提供直接访问相机寄存器的低级接口,而 PiCamera 库提供了一种更高层次的抽象,简化了对相机的访问。
3. 如何检查我的相机是否正确连接?
使用以下命令检查相机设备:
ls /dev/video*
如果相机已连接,则应列出 /dev/videoX 设备。
4. 为什么使用旧版本的 libcamera 库可以解决问题?
旧版本的 libcamera 库包含了在较新版本中已删除的代码。
5. 我可以在哪里找到有关 MMAL 接口的更多信息?
有關 MMAL 接口的更多信息,請參閱官方文檔:https://www.raspberrypi.com/documentation/raspbian/applications/camera.md#mmal-api