k230摄像头初始化配置函数解析

通过 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 or height】二选一

    • 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

注意事项

  • 输出图像尺寸不得超过图像传感器的实际输出能力。
  • 各通道的最大输出图像尺寸受硬件限制。

举例

复制代码
# 配置 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

举例

复制代码
# 配置 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)
相关推荐
Shulex28 分钟前
跨境电商 AI Agent 核心架构解析:从只读问答到自主执行的工程落地
人工智能·架构·智能客服·跨境电商
Java后端的Ai之路29 分钟前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
情 九34 分钟前
MCP 实战 06:把 HTTP 接口接成工具,让 AI 帮你查数据
人工智能·网络协议·http·mcp
码农小旋风1 小时前
Ray分布式计算引擎介绍
人工智能·架构
火山引擎和TA的超级拍档们1 小时前
产品情报局 08 | AI 内容助手:全网热点驱动,一站式打通内容生产全链路
人工智能
Binovate缤江数智1 小时前
水泵远程开关之后,还需要管什么?数智开关在无人值守泵站中的监测、保护与能耗分析
人工智能·物联网
素男1 小时前
两个月不是六十天
人工智能·agent·self-becoming·ai长期记忆·ai自我介绍
byte轻骑兵2 小时前
【LMP】规范精讲[10]: 语音专线开线记——SCO 固定占座与 eSCO 限时重传
人工智能·人机交互·lmp·蓝牙链路管理·蓝牙外设