通过 csi id
和图像传感器类型构建 Sensor
对象。
在图像处理应用中,用户通常需要首先创建一个 Sensor
对象。CanMV K230 软件可以自动检测内置的图像传感器,无需用户手动指定具体型号,只需设置传感器的最大输出分辨率和帧率。有关支持的图像传感器信息,请参见图像传感器支持列表。如果设定的分辨率或帧率与当前传感器的默认配置不符,系统会自动调整为最优配置,最终的配置可在日志中查看,例如 use sensor 23, output 640x480@90
。
sensor = Sensor(id, [width, height, fps])
这里的设置可以指定后面你三个通道最大的分辨率绝对不能超过这里设置的最大分辨率
图像帧尺寸 | 分辨率 |
---|---|
Sensor.VGA |
640x480 |
Sensor.HD |
1280x720 |
Sensor.FHD |
1920x1080 |
...完整见下面
参数名称 | 描述 | 输入/输出 | 说明 |
---|---|---|---|
id | csi 端口,支持 0,1,2 |
输入 | 可选,庐山派开发板默认摄像头为CSI2 |
width | sensor 最大输出图像宽度 |
输入 | 可选,默认 1920 |
height | sensor 最大输出图像高度 |
输入 | 可选,默认 1080 |
fps | sensor 最大输出图像帧率 |
输入 | 可选,默认 30 |
返回值
返回值 | 描述 |
---|---|
Sensor 对象 | 传感器对象 |
举例
sensor = Sensor(id=0)
sensor = Sensor(id=0, width=1280, height=720, fps=60)
sensor = Sensor(id=0, width=640, height=480)
庐山派开发板的默认摄像头接口为CSI2,如果Sensor默认内不指定id,则默认为id=2.
也就是说以下两条语句是等效的:
sensor = Sensor()
sensor = Sensor(id=2)
5.1 sensor.reset
描述
复位 sensor
对象。在构造 Sensor
对象后,必须调用此函数以继续执行其他操作。
语法
python
sensor.reset()
参数
参数名称 | 描述 | 输入/输出 |
---|---|---|
无 |
返回值
返回值 | 描述 |
---|---|
无 |
举例
# 初始化 sensor 以及传感器 GC2093
sensor.reset()
2.2 sensor.set_framesize
描述
设置指定通道的输出图像尺寸。用户可以通过 framesize
参数或直接指定 width
和 height
来配置输出图像尺寸。宽度会自动对齐到 16 像素宽。
语法
python
sensor.set_framesize(framesize=FRAME_SIZE_INVALID, chn=CAM_CHN_ID_0, alignment=0, **kwargs)
kwargs
是关键词参数(keyword argument)的缩写,目前可以输入的参数有width和height,这两个参数和framesize所设置的分辨率是一个东西,所以是互斥的,只能二选一。
参数
参数名称 | 描述 | 输入/输出 |
---|---|---|
framesize | sensor 输出图像尺寸 | 输入 |
width【**kwargs】 | 输出图像宽度,kw_arg | 输入 |
height 【**kwargs】 | 输出图像高度,kw_arg | 输入 |
chn | sensor 输出通道号 | 输入 |
参数可选值:
-
设置输出图像尺寸,【
framesize
】和【width
orheight
】二选一-
framesize
图像帧尺寸 分辨率 Sensor.VGA
640x480 Sensor.HD
1280x720 Sensor.FHD
1920x1080 图像帧尺寸 分辨率 Sensor.QQCIF
88x72 Sensor.QCIF
176x144 Sensor.CIF
352x288 Sensor.QSIF
176x120 Sensor.SIF
352x240 Sensor.QQVGA
160x120 Sensor.QVGA
320x240 Sensor.VGA
640x480 Sensor.HQQVGA
120x80 Sensor.HQVGA
240x160 Sensor.HVGA
480x320 Sensor.B64X64
64x64 Sensor.B128X64
128x64 Sensor.B128X128
128x128 Sensor.B160X160
160x160 Sensor.B320X320
320x320 Sensor.QQVGA2
128x160 Sensor.WVGA
720x480 Sensor.WVGA2
752x480 Sensor.SVGA
800x600 Sensor.XGA
1024x768 Sensor.WXGA
1280x768 Sensor.SXGA
1280x1024 Sensor.SXGAM
1280x960 Sensor.UXGA
1600x1200 Sensor.HD
1280x720 Sensor.FHD
1920x1080 Sensor.QHD
2560x1440 Sensor.QXGA
2048x1536 Sensor.WQXGA
2560x1600 Sensor.WQXGA2
2592x1944 -
- 这个就是自己填分辨率就行。
-
-
设置输出通道号
- chn
- 通道0:
CAM_CHN_ID_0
- 通道1:
CAM_CHN_ID_1
- 通道2:
CAM_CHN_ID_2
- 通道0:
- chn
注意事项
- 输出图像尺寸不得超过图像传感器的实际输出能力。
- 各通道的最大输出图像尺寸受硬件限制。
举例
# 配置 sensor 设备,输出通道 0,输出图尺寸为 640x480
sensor.set_framesize(chn=CAM_CHN_ID_0, width=640, height=480)
# 配置 sensor 设备,输出通道 1,输出图尺寸为 320x240
sensor.set_framesize(chn=CAM_CHN_ID_1, width=320, height=240)
# 配置 sensor 设备,输出通道 3,输出图尺寸为 640x480
sensor.set_framesize(chn=CAM_CHN_ID_3, framesize = sensor.VGA)
5.3 sensor.set_pixformat
描述
配置指定通道的图像传感器输出图像格式。
语法
sensor.set_pixformat(pix_format, chn=CAM_CHN_ID_0)
参数
参数名称 | 描述 | 输入/输出 |
---|---|---|
pix_format | 输出图像格式(像素格式) | 输入 |
chn | sensor 输出通道号 | 输入 |
参数可选值:
-
设置像素格式(如果想知道这些像素格式的具体定义,请看后续的摄像头基础知识部分)
像素格式 说明 Sensor.RGB565
16 位 RGB 格式 Sensor.RGB888
24 位 RGB 格式 Sensor.RGBP888
分离的 24 位 RGB Sensor.YUV420SP
半平面 YUV Sensor.GRAYSCALE
灰度图 -
设置输出通道号
- chn
- 通道0:
CAM_CHN_ID_0
- 通道1:
CAM_CHN_ID_1
- 通道2:
CAM_CHN_ID_2
- 通道0:
- chn
举例
# 配置 sensor 设备 0,输出通道 0,输出 NV12 格式
sensor.set_pixformat(Sensor.YUV420SP, chn=CAM_CHN_ID_0)
# 配置 sensor 设备 0,输出通道 1,输出 RGB888 格式
sensor.set_pixformat(Sensor.RGB888, chn=CAM_CHN_ID_1)