picamera2

一些树莓派摄像头的使用记录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from picamera2 import Picamera2, Preview

import time



# 创建 Picamera2 对象

picam2 = Picamera2()



# 配置摄像头

config = picam2.create_preview_configuration(main={"size": (640, 480)})

picam2.configure(config)



# 启动摄像头预览

picam2.start_preview(Preview.QTGL)

picam2.start()



print("Press Ctrl+C to stop the preview...")



try:

    # 保持预览运行直到手动终止程序

    while True:

        time.sleep(1)  # 使用 sleep 代替 pass,以减少 CPU 占用

except KeyboardInterrupt:

    # 捕捉到 Ctrl+C 中断信号后停止预览

    picam2.stop_preview()

    picam2.close()

    print("Preview stopped.")

except Exception as e:

    # 捕捉其他可能的错误

    picam2.close()

    print(f"An error occurred: {e}")
1
libcamera-hello --list-cameras
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
camera_config = {
"sensor": {
#"mode": picam2.sensor_modes[0],
#"bit_depth": 10,
},
"size":(1920, 1080),
"colour_space": ColorSpace.Sycc(),
"transform":Transform(hflip=1),
"main":{
"size":(1920, 1080),
#"colour_space":"YUV420"
"format":"YUV420",
"preserve_ar": False
},
"lores": {
"size": (640, 480),
# "colour_space": "YUV420"
"format":"YUV420",
"preserve_ar": False
},
"raw": {
"size": (2592, 1944),
"format":"SRGGB10_CSI2P",
"preserve_ar": False
},
"buffer_count" :4,
"display": "main",
"encode": "main",
"queue": True,
"controls": {}
}


1
2
3
4
5
6
sudo python camera.py
[48:59:36.316547742] [13251] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b
[48:59:36.324132147] [13254] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32)
[48:59:36.333884797] [13254] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/ov5647@36 to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0
[48:59:36.337044211] [13251] INFO Camera camera.cpp:1197 configuring streams: (0) 1920x1080-YUV420 (1) 640x480-YUV420 (2) 2592x1944-BGGR_PISP_COMP1
[48:59:36.337168397] [13254] INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/ov5647@36 - Selected sensor format: 2592x1944-SBGGR10_1X10 - Selected CFE format: 2592x1944-PC1B
1
2
3
4
5
6
7
8
sudo python test.py
[48:30:38.435514653] [12879] INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b
[48:30:38.442934505] [12882] INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32)
[48:30:38.452247621] [12882] INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/ov5647@36 to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0
[48:30:38.455445944] [12879] INFO Camera camera.cpp:1197 configuring streams: (0) 640x480-XBGR8888 (1) 640x480-GBRG_PISP_COMP1
[48:30:38.455559426] [12882] INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected CFE format: 640x480-PC1g
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
作者

kfzzzzzz

发布于

2025-02-18

更新于

2025-02-25

许可协议

评论