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 参数或直接指定 widthheight 来配置输出图像尺寸。宽度会自动对齐到 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)
相关推荐
大刚测试开发实战4 分钟前
TestHub V0.2.2版本发布,附更新指南
人工智能
冬奇Lab1 小时前
Agent 系列(21):Harness 测试工程——45 个测试怎么设计,以及它发现了什么 bug
人工智能·llm·agent
冬奇Lab1 小时前
每日一个开源项目(第133篇):EchoBird - 把 AI 工具的安装和部署做成傻瓜操作
人工智能·开源·资讯
IT_陈寒3 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
用户5191495848454 小时前
Windows 渗透测试载荷加载器 POC 工具集
人工智能·aigc
大树884 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
通信小呆呆5 小时前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
施小赞5 小时前
普通 RAG vs GraphRAG 核心对比
人工智能·ai
EAIReport5 小时前
RuoYi-AI 企业级AI开发平台实战详解
人工智能
xiao5kou4chang6kai45 小时前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理