sensor — 相机传感器

sensor 模块用于拍照。

示例用法:

import sensor

# Setup camera.
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames()

# Take pictures.
while(True):
    sensor.snapshot()

函数

sensor.reset() None

初始化相机传感器。

sensor.sleep(enable: bool) None

如果enable是True,则让相机进入睡眠状态。否则,唤醒相机。

sensor.shutdown(enable: bool) None

将相机置于比睡眠模式更低的功耗模式(但相机必须在唤醒时进行重置)。

sensor.flush() None

将帧缓冲区中的内容复制到IDE中。如果不是在运行带有无循环的脚本,则应调用此方法来显示OpenMV Cam拍摄的最后一张图像。请注意,在脚本完成后,您需要添加约一秒的延迟时间,以便IDE从相机中获取图像。否则,此方法无效。

sensor.snapshot() image.Image

使用相机拍照并返回一个 image 对象。

OpenMV Cam 有两个用于图像的内存区域。用于正常 MicroPython 处理的经典堆栈/堆区可以在其堆区中存储小型图像。但是,MicroPython 堆的大小仅约为 ~100 KB,这不足以存储较大的图像。因此,您的 OpenMV Cam 具有用于存储由 sensor.snapshot() 拍摄的图像的第二个帧缓冲区内存区域。图像存储在此内存区域的底部。剩余的任何内存将可供帧缓冲区堆栈使用,您的 OpenMV Cam 固件用于保存用于图像处理算法的大型临时数据结构。

如果您需要空间来存储多个帧,可以通过调用 sensor.alloc_extra_fb() 来“窃取”帧缓冲区空间。

如果启用了 sensor.set_auto_rotation(),则此方法将返回一个新的已旋转的 image 对象。

备注

sensor.snapshot() 可能会应用裁剪参数,以适应快照在可用 RAM 中的大小,包括像素格式、帧大小、窗口化和帧缓冲区。裁剪参数将应用于保持纵横比,并保持到调用 sensor.set_framesize()sensor.set_windowing() 为止。

sensor.skip_frames(n: int | None = None, time: int | None = None) None

获取 n 个快照,以使相机图像在更改相机设置后稳定。 n 作为常规参数传递,例如 skip_frames(10) 跳过 10 帧。在更改相机设置后,应调用此函数。

或者,您可以传递关键字参数 time 来跳过一些毫秒数的帧,例如 skip_frames(time = 2000) 跳过 2000 毫秒的帧。

如果未指定 ntime,则此方法将跳过300毫秒的帧。

如果两者都指定,则此方法将跳过 n 个帧,但在 time 毫秒后超时。

备注

sensor.snapshot() 可能会应用裁剪参数,以适应快照在可用 RAM 中的大小,包括像素格式、帧大小、窗口化和帧缓冲区。裁剪参数将应用于保持纵横比,并保持到调用 sensor.set_framesize()sensor.set_windowing() 为止。

sensor.width() int

返回传感器分辨率的宽度。

sensor.height() int

返回传感器分辨率的高度。

sensor.get_fb() image.Image | None

(获取帧缓冲区)返回先前调用 sensor.snapshot() 返回的图像对象。如果之前未调用过 sensor.snapshot(),则返回 None

sensor.get_id() int

返回相机模块ID。

sensor.alloc_extra_fb(width: int, height: int, pixformat: int) image.Image

从帧缓冲区堆栈中为图像存储分配另一个帧缓冲区,并返回 widthheightpixformatimage 对象。

只要有可用的内存,您可以调用此函数任意次数,以分配任意数量的额外帧缓冲区。

如果 pixformat 是大于等于 4 的数字,则将分配 JPEG 图像。然后,您可以使用 Image.bytearray() 来获得对 JPEG 图像的字节级读写访问。

备注

创建次级图像通常需要在堆上分配内存,而堆的内存量是有限的,而且堆内存还会发生碎片化,这使得很难获得一块足够大的连续内存区域来存储图像。通过这种方法,你可以通过从用于计算机视觉算法的帧缓冲区栈内存中分配空间,瞬间为图像分配一个非常大的内存数组。也就是说,这种方法让你能够更高效地处理图像,但这也意味着,如果你尝试执行更高内存需求的机器视觉算法(例如 Image.find_apriltags()),你可能会更容易用完内存。

sensor.dealloc_extra_fb() None

释放上一个先前分配的额外帧缓冲区。额外帧缓冲区用于存储在类似堆栈的结构中。

备注

您的OpenMV Cam有两个内存区域。首先,你有传统的.data/.bss/heap/stack内存区域。.data/.bss/heap区域由固件固定。栈区会向下增长,直到与堆区相遇。接下来,帧缓冲区存储在一个次级内存区域中。内存的布局是:主帧缓冲区位于底部,帧缓冲区栈位于顶部。当调用 sensor.snapshot() 时,它会从底部开始填充帧缓冲区。帧缓冲区栈则可以使用剩余的内存。这种内存分配方法对于微控制器上的计算机视觉非常高效。

sensor.set_pixformat(pixformat: int) None

设置相机模块的像素格式。

如果您正在尝试使用 OV2640 或 OV5640 相机模块拍摄 JPEG 图像,并且分辨率较高,则应将 pixformat 设置为 sensor.JPEG。然后,您可以使用 sensor.set_quality() 控制图像质量。

sensor.get_pixformat() int

返回相机模块的像素格式。

sensor.set_framesize(framesize: int) None

设置相机模块的帧大小。

sensor.get_framesize() int

返回相机模块的帧大小。

sensor.set_framerate(rate: int) None

设置相机模块的帧率(以赫兹为单位)。

备注

set_framerate 通过丢弃相机模块接收到的帧来保持帧率等于(或低于)您指定的速率。默认情况下,相机将以最大帧率运行。如果为特定相机传感器实现了 set_framerate,那么它还将在内部降低相机传感器的帧率,以节省功耗并通过增加传感器曝光来提高图像质量。set_framerate 可能会与某些相机上的 set_auto_exposure 冲突。

sensor.get_framerate() int

返回相机模块的帧率(以赫兹为单位)。

sensor.set_windowing(roi: Tuple[int, int] | Tuple[int, int, int, int]) None

将相机的分辨率设置为当前分辨率内的子分辨率。例如,将分辨率设置为 sensor.VGA,然后将窗口设置为(120,140,200,200)将使 sensor.snapshot() 捕获相机传感器输出的VGA分辨率的中心200×200像素。您可以使用窗口化来获取自定义分辨率。此外,在较大分辨率上使用窗口化实际上是数字变焦。

roi 是一个矩形元组 (x, y, w, h)。但是,您也可以只传递 (w, h),并且 roi 将在帧中居中。您还可以不使用括号传递 roi。

此函数将自动处理将传递的roi裁剪到帧大小。

sensor.get_windowing() Tuple[int, int, int, int]

返回先前使用 sensor.set_windowing() 设置的 roi 元组 (x, y, w, h)。

sensor.set_gainceiling(gainceiling: int) None

设置相机图像增益上限。2、4、8、16、32、64 或 128。

sensor.set_contrast(contrast: int) None

设计相机图像对比度。-3 到 +3。

sensor.set_brightness(brightness: int) None

设置相机图像亮度。-3 到 +3。

sensor.set_saturation(saturation: int) None

设置相机图像饱和度。-3 到 +3。

sensor.set_quality(quality: int) None

设置相机图像JPEG压缩质量。0 - 100。

备注

仅适用于 OV2640/OV5640 相机。

sensor.set_colorbar(enable: bool) None

打开(True)或关闭(False)彩色条模式。默认为关闭。

sensor.set_auto_gain(enable: bool, gain_db=-1, gain_db_ceiling: int | None = None) None

enable 打开(True)或关闭(False)自动增益控制。相机将启动时默认启用自动增益控制。

如果 enable 为 False,则可以使用 gain_db 设置固定增益(以分贝为单位)。

如果 enable 为 True,则可以使用 gain_db_ceiling 设置自动增益控制算法的最大增益上限(以分贝为单位)。

备注

如果要跟踪颜色,您需要关闭白平衡。

sensor.get_gain_db() float

以分贝(float)为单位返回当前相机增益值。

sensor.set_auto_exposure(enable: bool, exposure_us: int | None = None) None

enable 打开(True)或关闭(False)自动曝光控制。相机启动时将打开自动曝光控制。

如果 enable 为 False,则可以使用 exposure_us 设置固定曝光时间(以微秒为单位)。

备注

相机的自动曝光算法在调整曝光值时非常保守,通常不会大幅度改变曝光值。相反,算法会通过大幅调整增益值来应对光照变化。

sensor.get_exposure_us() int

返回以微秒(int)为单位的当前相机曝光时间。

sensor.set_auto_whitebal(enable: bool, rgb_gain_db: Tuple[float, float, float] | None = None) None

enable 参数用于打开(True)或关闭(False)自动白平衡。相机将以自动白平衡状态启动。

如果 enable 为 False,则可以使用 rgb_gain_db 分别设置红色、绿色和蓝色通道的固定增益(以分贝为单位)。

备注

如果要跟踪颜色,则还需要关闭增益控制。

sensor.get_rgb_gain_db() Tuple[float, float, float]

返回当前相机的红色、绿色、蓝色增益值的元组,以分贝为单位((float, float, float))。

sensor.set_auto_blc(enable: bool, regs: Any | None = None)

设置相机的自动黑色校准(blc)控制。

enable 传入 TrueFalse 以打开或关闭 BLC。通常情况下,您始终希望将其打开。

regs 如果禁用,则可以通过先前从 get_blc_regs() 获得的值手动设置 blc 寄存器的值。

sensor.get_blc_regs() Any

以不透明的整数元组形式返回传感器blc寄存器。用于 set_auto_blc

sensor.set_hmirror(enable: bool) None

打开(True)或关闭(False)水平镜像模式。默认为关闭。

sensor.get_hmirror() bool

如果启用了水平镜像模式则返回。

sensor.set_vflip(enable: bool) None

打开(True)或关闭(False)垂直翻转模式。默认为关闭。

sensor.get_vflip() bool

如果垂直翻转模式启用则返回。

sensor.set_transpose(enable: bool) None

打开(True)或关闭(False)转置模式。默认为关闭。

  • vflip=False, hmirror=False, transpose=False -> 0 度旋转

  • vflip=True, hmirror=False, transpose=True -> 90 度旋转

  • vflip=True, hmirror=True, transpose=False -> 180 度旋转

  • vflip=False, hmirror=True, transpose=True -> 270 度旋转

sensor.get_transpose() bool

如果转置模式启用则返回。

sensor.set_auto_rotation(enable: bool) None

打开(True)或关闭(False)自动旋转模式。默认为关闭。

备注

仅当OpenMV Cam安装了 imu 并自动启动时,此函数才有效。

sensor.get_auto_rotation() bool

如果自动旋转模式启用则返回。

备注

仅当OpenMV Cam安装了 imu 并自动启动时,此函数才有效。

sensor.set_framebuffers(count: int) None

设置用于接收图像数据的帧缓冲区数量。默认情况下,您的 OpenMV Cam 将尝试自动分配尽可能多的帧缓冲区,以确保在分配时不超过可用帧缓冲区 RAM 的一半,以确保获得最佳性能。每当调用 sensor.set_pixformat()sensor.set_framesize()sensor.set_windowing() 时,都会自动重新分配帧缓冲区。

sensor.snapshot() 会在后台自动处理切换活动帧缓冲区。从你的代码角度来看,始终只有一个活动帧缓冲区,尽管系统中可能有多个帧缓冲区,并且另一个帧缓冲区在后台接收数据。

如果计数为:

1 - 单缓冲区模式(也可以传递 sensor.SINGLE_BUFFER

在单缓冲区模式下,您的 OpenMV Cam 将为接收图像分配一个帧缓冲区。当您调用 sensor.snapshot() 时,该帧缓冲区将用于接收图像,并且相机驱动程序将继续运行。如果在接收下一帧的第一行之前再次调用 sensor.snapshot(),则您的代码将以相机的帧速率执行。否则,图像将被丢弃。

2 - 双缓冲区模式(也可以传递 sensor.DOUBLE_BUFFER

在双缓冲模式下,你的 OpenMV 相机会分配两个帧缓冲区来接收图像。当你调用 sensor.snapshot() 时,一个帧缓冲区将用于接收图像,摄像头驱动将继续运行。当下一帧图像接收时,它将被存储在另一个帧缓冲区。如果你在接收到下一帧的第一行图像之前再次调用 sensor.snapshot() ,你的代码将以相机的帧率执行。否则,图像将被丢弃。

3 - 三重缓冲区模式(也可以传递 sensor.TRIPLE_BUFFER

在三重缓冲区模式下,您的 OpenMV Cam 将为接收图像分配三个缓冲区。在此模式下,始终有一个帧缓冲区在后台存储接收到的图像,从而实现读取最新接收帧的性能最佳且延迟最低。在此模式下永远不会丢失帧。由 sensor.snapshot() 读取的下一帧是传感器驱动程序捕获的最后一帧(例如,如果您的读取速度比相机帧速率慢,则跳过可用帧中较旧的帧)。

关于上述重新分配,首先尝试三重缓冲区,然后是双重缓冲区,如果这两种都无法适应可用帧缓冲区RAM的一半,则使用单缓冲区模式。

您可以传递大于4的值,将传感器驱动程序设置为视频FIFO模式,其中接收到的图像存储在带有 count 个缓冲区的帧缓冲区FIFO中。这对于视频记录到SD卡非常有用,当SD卡执行诸如预擦除块以写入数据时,可能会随机阻塞您的代码。

备注

在帧丢失(没有可用缓冲区接收下一帧)时,所有帧缓冲区都会自动清除,除了活动帧缓冲区。这样做是为了确保 sensor.snapshot() 返回当前帧,而不是很久以前的帧。

有趣的事实是,在带有 SDRAM 的 OpenMV Cam 上可以传递大约 100 的值以获得巨大的视频 FIFO。然后,如果您以比相机帧速率慢的速度调用快照(通过添加 machine.sleep()),您将在 OpenMV IDE 中获得慢动作效果。但是,您还将看到上述策略效果,即在帧丢失时重置帧缓冲区,以确保帧不会过时。如果要记录慢动作视频,请正常将视频记录到 SD 卡,然后在桌面计算机上以比记录速度慢的速度播放视频。

sensor.get_framebuffers() int

返回当前分配的帧缓冲区数量。

sensor.disable_delays(disable: bool | None = None) bool

如果 disableTrue,则禁用传感器模块中的所有延迟时间。每当您重置相机模块、更改模式等,传感器驱动程序都会延迟,以防止您在之后很快调用 snapshot 并从相机模块接收损坏的帧。通过禁用延迟,您可以在最后延迟并调用 snapshot 之前通过多个函数调用快速更新相机模块设置。

如果此函数不带参数调用,则在禁用延迟时返回。

sensor.disable_full_flush(disable: bool | None = None) bool

如果 disableTrue,则禁用 set_framebuffers 中提到的自动帧缓冲刷新。这将移除帧缓冲 FIFO 中帧的任何时间限制。例如,如果您将帧缓冲区数设置为 30,并将帧速率设置为 30,现在您可以精确地从相机记录 1 秒的视频,而不会丢失帧。

如果此函数不带参数调用,则返回自动刷新是否已禁用。默认情况下,启用帧丢失时的自动刷新以清除陈旧的帧。

备注

snapshot 启动帧捕获过程,该过程将继续捕获帧,直到没有空间来容纳帧为止,此时帧捕获过程停止。当没有空间来容纳下一个帧时,进程始终会停止。

sensor.set_lens_correction(enable: bool, radi: int, coef: int) None

enable 为 True 则启用,为 False 则禁用(bool)。radi 要更正的像素半径(int)。coef 更正的幂(int)。

sensor.set_vsync_callback(cb) None

注册回调函数 cb (在中断上下文中执行),每当相机模块生成新帧时(但在接收到帧之前)执行。

cb 接受一个参数,并传递更改后的垂直同步引脚的当前状态。

sensor.set_frame_callback(cb) None

注册回调函数 cb (在中断上下文中执行),每当相机模块生成新帧并准备通过 sensor.snapshot() 读取时执行。

cb 不接受参数。

使用此功能获取中断以稍后使用 micropython.schedule() 读取帧。

sensor.get_frame_available() bool

如果通过调用 sensor.snapshot() 读取帧,则返回True。

sensor.ioctl(*args, **kwargs) Any

执行传感器特定方法:

  • sensor.IOCTL_SET_READOUT_WINDOW - 在此枚举后传递一个矩形元组 (x, y, w, h) 或大小元组 (w, h)。
    • 此 IOCTL 允许您控制相机传感器的读出窗口,这会大大提高帧速率,但会减少视场。

    • 如果传递一个矩形元组 (x, y, w, h),读取窗口将定位于该矩形元组的位置。矩形元组的 x/y 坐标将被调整,以便大小 w/h 适配。同时,大小 w/h 会被调整,确保其不小于 framesize

    • 如果传递一个大小元组 (w, h),则读取窗口将根据 w/h 居中。此外,大小 w/h 将被调整为不小于 framesize

    • 此 IOCTL 对于增加 OV2640/OV5640 等较高分辨率相机的帧速率非常有帮助。

  • sensor.IOCTL_GET_READOUT_WINDOW - 在 sensor.ioctl 中传递此枚举以返回当前读出窗口矩形元组 (x, y, w, h)。默认情况下为 (0, 0, maximum_camera_sensor_pixel_width, maximum_camera_sensor_pixel_height)。

  • sensor.IOCTL_SET_TRIGGERED_MODE - 在此枚举后传递 True 或 False 为 MT9V034 传感器设置触发模式。

  • sensor.IOCTL_GET_TRIGGERED_MODE - 在 sensor.ioctl 中传递此枚举以返回当前触发模式状态。

  • sensor.IOCTL_SET_FOV_WIDE - 在此枚举后传递 True 或 False 以启用 sensor.set_framesize() 以优化视场而不是 FPS。

  • sensor.IOCTL_GET_FOV_WIDE - 在 sensor.ioctl 中传递此枚举以返回当前视场优先于 FPS 优化状态。

  • sensor.IOCTL_TRIGGER_AUTO_FOCUS - 在 sensor.ioctl 中传递此枚举以触发 OV5640 FPC 相机模块的自动对焦。

  • sensor.IOCTL_PAUSE_AUTO_FOCUS - 在 sensor.ioctl 中传递此枚举以暂停 OV5640 FPC 相机模块的自动对焦(在触发后)。

  • sensor.IOCTL_RESET_AUTO_FOCUS - 在 sensor.ioctl 中传递此枚举以重置 OV5640 FPC 相机模块的自动对焦(在触发后)。

  • sensor.IOCTL_WAIT_ON_AUTO_FOCUS - 在 sensor.ioctl 中传递此枚举以等待 OV5640 FPC 相机模块的自动对焦(在触发后)完成。您可以传递第二个参数作为超时时间(以毫秒为单位)。默认值为 5000 毫秒。

  • sensor.IOCTL_SET_NIGHT_MODE - 在此枚举后传递 True 或 False 以设置 OV7725 和 OV5640 传感器的夜间模式。

  • sensor.IOCTL_GET_NIGHT_MODE - 在 sensor.ioctl 中传递此枚举以返回当前夜间模式状态。

  • sensor.IOCTL_LEPTON_GET_WIDTH - 传递此枚举以获取 FLIR Lepton 图像宽度(以像素为单位)。

  • sensor.IOCTL_LEPTON_GET_HEIGHT - 传递此枚举以获取 FLIR Lepton 图像高度(以像素为单位)。

  • sensor.IOCTL_LEPTON_GET_RADIOMETRY - 传递此枚举以获取 FLIR Lepton 类型(辐射或非辐射)。

  • sensor.IOCTL_LEPTON_GET_REFRESH - 传递此枚举以获取 FLIR Lepton 刷新率(以赫兹为单位)。

  • sensor.IOCTL_LEPTON_GET_RESOLUTION - 传递此枚举以获取 FLIR Lepton ADC 分辨率(以位为单位)。

  • sensor.IOCTL_LEPTON_RUN_COMMAND - 传递此枚举以执行 FLIR Lepton SDK 命令。您需要在枚举后传递一个额外的 16 位值作为要执行的命令。

  • sensor.IOCTL_LEPTON_SET_ATTRIBUTE - 传递此枚举以设置 FLIR Lepton SDK 属性。
    • 第一个参数是要设置的 16 位属性 ID(设置 FLIR Lepton SDK)。

    • 第二个参数是要写入的字节的 MicroPython 字节数组(应为 16 位的倍数)。使用 struct 创建字节数组,遵循 FLIR Lepton SDK。

  • sensor.IOCTL_LEPTON_GET_ATTRIBUTE - 传递此枚举以获取 FLIR Lepton SDK 属性。
    • 第一个参数是要设置的 16 位属性 ID(设置 FLIR Lepton SDK)。

    • 返回属性的 MicroPython 字节数组。使用 struct 按照 FLIR Lepton SDK 反序列化字节数组。

  • sensor.IOCTL_LEPTON_GET_FPA_TEMPERATURE - 传递此枚举以获取 FLIR Lepton FPA 温度(摄氏度)。

  • sensor.IOCTL_LEPTON_GET_AUX_TEMPERATURE - 传递此枚举以获取 FLIR Lepton AUX 温度(摄氏度)。

  • sensor.IOCTL_LEPTON_SET_MEASUREMENT_MODE - 传递此参数,后跟 True 或 False 以关闭 FLIR Lepton 上的自动增益控制,并强制它输出每个像素值都代表摄氏度的精确温度值的图像。第二个 True 启用高温模式,在 Lepton 3.5 上启用高达 500C 的测量。False 是默认为低温模式。

  • sensor.IOCTL_LEPTON_GET_MEASUREMENT_MODE - 传递此枚举以获取 (测量模式启用,高温启用) 元组。

  • sensor.IOCTL_LEPTON_SET_MEASUREMENT_RANGE - 在启用测量模式时传递此枚举以设置映射操作的温度范围(以摄氏度为单位)。然后,FLIR Lepton 返回的温度图像将在这些最小和最大值之间夹紧,然后缩放到 0 到 255 之间的值。要将像素值映射回温度(在灰度图像上),请执行以下操作:((像素 * (最大摄氏度 - 最小摄氏度)) / 255.0) + 最小摄氏度。
    • 第一个参数应为摄氏度中的最小温度。

    • 第二个参数应该为以摄氏度为单位的最大温度。如果参数颠倒,库将自动为您交换它们。

  • sensor.IOCTL_LEPTON_GET_MEASUREMENT_RANGE - 传递此枚举以返回排序的 (最小,最大) 2 值温度范围元组。如果尚未设置,默认为 -10C 到 40C。

  • sensor.IOCTL_HIMAX_MD_ENABLE - 传递此枚举后跟 True/False 以启用/禁用 HM01B0 上的运动检测。您还应该启用 I/O 引脚(Arduino Portenta 上的 PC15)连接到 HM01B0 运动检测线以接收中断。

  • sensor.IOCTL_HIMAX_MD_CLEAR - 传递此枚举以清除 HM01B0 上的运动检测中断。

  • sensor.IOCTL_HIMAX_MD_WINDOW - 传递此枚举后跟 (x1, y1, x2, y2) 以在 HM01B0 上设置运动检测窗口。

  • sensor.IOCTL_HIMAX_MD_THRESHOLD - 传递此枚举后跟阈值值 (0-255) 以设置 HM01B0 上的运动检测阈值。

  • sensor.IOCTL_HIMAX_OSC_ENABLE - 传递此枚举后跟 True/False 以启用/禁用 HM01B0 上的振荡器以节省功耗。

sensor.set_color_palette(palette: int) None

设置用于 FLIR Lepton 灰度到 RGB565 转换的颜色调色板。

sensor.get_color_palette() int

返回当前的颜色调色板设置。默认为 image.PALETTE_RAINBOW

sensor.__write_reg(address: int, value: int) None

value (int)写入到地址为 address (int)的相机寄存器中。

备注

有关寄存器信息,请参阅相机数据表。

sensor.__read_reg(address: int) int

读取地址为 address (int)的相机寄存器。

备注

有关寄存器信息,请参阅相机数据表。

常量

sensor.BINARY: int

二进制(位图)像素格式。每个像素为1位。

此格式对于掩码存储很有用。可以与 Image()sensor.alloc_extra_fb() 一起使用。

sensor.GRAYSCALE: int

灰度像素格式(来自YUV422的Y)。每个像素为8位,1字节。

所有我们的计算机视觉算法在灰度图像上运行速度比RGB565图像快。

sensor.RGB565: int

RGB565像素格式。每个像素为16位,即2字节。5位用于红色,6位用于绿色,5位用于蓝色。

所有我们的计算机视觉算法在RGB565图像上运行速度比灰度图像慢。

sensor.BAYER: int

RAW BAYER图像像素格式。如果尝试使帧大小过大而无法适应帧缓冲区,则您的OpenMV Cam将像素格式设置为BAYER,以便您可以捕获图像,但只有一些图像处理方法将可用。

sensor.YUV422: int

非常容易进行JPEG压缩的像素格式。每个像素都存储为一个灰度8位Y值,后跟交替的8位U/V颜色值,这些值在两个Y值之间共享(8位Y1,8位U,8位Y2,8位V,等等)。只有一些图像处理方法适用于YUV422。

sensor.JPEG: int

JPEG模式。摄像头模块输出压缩的jpeg图像。使用 sensor.set_quality() 控制jpeg质量。仅适用于OV2640/OV5640摄像头。

sensor.OV2640: int

sensor.get_id() 返回OV2640相机的值。

sensor.OV5640: int

sensor.get_id() 返回OV5640相机的值。

sensor.OV7690: int

sensor.get_id() 返回OV7690相机的值。

sensor.OV7725: int

sensor.get_id() 返回OV7725相机的值。

sensor.OV9650: int

sensor.get_id() 返回OV9650相机的值。

sensor.MT9V022: int

sensor.get_id() 返回MT9V022相机的值。

sensor.MT9V024: int

sensor.get_id() 返回MT9V024相机的值。

sensor.MT9V032: int

sensor.get_id() 返回MT9V032相机的值。

sensor.MT9V034: int

sensor.get_id() 返回MT9V034相机的值。

sensor.MT9M114: int

sensor.get_id() 返回MT9M114相机的值。

sensor.LEPTON: int

sensor.get_id() 返回LEPTON1/2/3相机的值。

sensor.HM01B0: int

sensor.get_id() 返回HM01B0相机的值。

sensor.HM0360: int

sensor.get_id() 返回HM01B0相机的值。

sensor.GC2145: int

sensor.get_id() 返回GC2145相机的值。

sensor.PAG7920: int

sensor.get_id() 对于 PAG7920 摄像头返回此值。

sensor.PAJ6100: int

sensor.get_id() 返回PAJ6100相机的值。

sensor.FROGEYE2020: int

sensor.get_id() 返回FROGEYE2020相机的值。

sensor.QQCIF: int

88x72分辨率的相机传感器。

sensor.QCIF: int

176x144 分辨率的相机传感器。

sensor.CIF: int

352x288 分辨率的相机传感器。

sensor.QQSIF: int

88x60 分辨率的相机传感器。

sensor.QSIF: int

176x120 分辨率的相机传感器。

sensor.SIF: int

352x240 分辨率的相机传感器。

sensor.QQQQVGA: int

40x30 分辨率的相机传感器。

sensor.QQQVGA: int

80x60 分辨率的相机传感器。

sensor.QQVGA: int

160x120 分辨率的相机传感器。

sensor.QVGA: int

320x240 分辨率的相机传感器。

sensor.VGA: int

640x480 分辨率的相机传感器。

sensor.HQQQQVGA: int

30x20 分辨率的相机传感器。

sensor.HQQQVGA: int

60x40 分辨率的相机传感器。

sensor.HQQVGA: int

120x80 分辨率的相机传感器。

sensor.HQVGA: int

240x160 分辨率的相机传感器。

sensor.HVGA: int

480x320 分辨率的相机传感器。

sensor.B64X32: int

64x32 分辨率的相机传感器。

用于 Image.find_displacement() 和任何其他基于FFT的算法。

sensor.B64X64: int

64x64 分辨率的相机传感器。

用于 Image.find_displacement() 和任何其他基于FFT的算法。

sensor.B128X64: int

128x64 分辨率的相机传感器。

用于 Image.find_displacement() 和任何其他基于FFT的算法。

sensor.B128X128: int

128x128 分辨率的相机传感器。

用于 Image.find_displacement() 和任何其他基于FFT的算法。

sensor.B160X160: int

HM01B0相机传感器的160x160分辨率。

sensor.B320X320: int

HM01B0相机传感器的320x320分辨率。

sensor.LCD: int

相机传感器的分辨率为 128x160(与 LCD 保护罩一起使用)。

sensor.QQVGA2: int

相机传感器的分辨率为 128x160(与 LCD 保护罩一起使用)。

sensor.WVGA: int

MT9V034相机传感器的720x480分辨率。

sensor.WVGA2: int

MT9V034相机传感器的752x480分辨率。

sensor.SVGA: int

800x600 分辨率的相机传感器。

sensor.XGA: int

1024x768 分辨率的相机传感器。

sensor.WXGA: int

MT9M114相机传感器的1280x768分辨率。

sensor.SXGA: int

1280x1024 分辨率的相机传感器。仅适用于OV2640/OV5640相机。

sensor.SXGAM: int

MT9M114相机传感器的1280x960分辨率。

sensor.UXGA: int

1600x1200 分辨率的相机传感器。仅适用于 OV2640/OV5640相机。

sensor.HD: int

1280x720 分辨率的相机传感器。

sensor.FHD: int

1920x1080 分辨率的相机传感器。仅适用于 OV5640 相机。

sensor.QHD: int

2560x1440 分辨率的相机传感器。仅适用于 OV5640 相机。

sensor.QXGA: int

2048x1536 分辨率的相机传感器。仅适用于 OV5640 相机。

sensor.WQXGA: int

2560x1600 分辨率的相机传感器。仅适用于 OV5640 相机。

sensor.WQXGA2: int

2592x1944 分辨率的相机传感器。仅适用于 OV5640 相机。

sensor.IOCTL_SET_READOUT_WINDOW: int

允许您设置OV5640的读出窗口。

sensor.IOCTL_GET_READOUT_WINDOW: int

允许您获取OV5640的读出窗口。

sensor.IOCTL_SET_TRIGGERED_MODE: int

允许您设置MT9V034的触发模式。

sensor.IOCTL_GET_TRIGGERED_MODE: int

允许您获取MT9V034的触发模式。

sensor.IOCTL_SET_FOV_WIDE: int

启用 sensor.set_framesize() 以优化视场而不是FPS。

sensor.IOCTL_GET_FOV_WIDE: int

如果 sensor.set_framesize() 正在针对 FPS 的视野进行优化,则返回。

sensor.IOCTL_TRIGGER_AUTO_FOCUS: int

用于触发OV5640 FPC相机模块的自动对焦。

sensor.IOCTL_PAUSE_AUTO_FOCUS: int

用于暂停OV5640 FPC相机模块的自动对焦(在运行时)。

sensor.IOCTL_RESET_AUTO_FOCUS: int

用于将自动对焦重置为OV5640 FPC相机模块的默认设置。

sensor.IOCTL_WAIT_ON_AUTO_FOCUS: int

用于等待OV5640 FPC相机模块触发后自动对焦完成。

sensor.IOCTL_SET_NIGHT_MODE: int

用于在传感器上打开或关闭夜间模式。夜间模式会降低帧速率以动态增加曝光。

sensor.IOCTL_GET_NIGHT_MODE: int

获取传感器是否启用或禁用夜间模式的当前值。

sensor.IOCTL_LEPTON_GET_WIDTH: int

允许您获取FLIR Lepton图像分辨率的宽度(以像素为单位)。

sensor.IOCTL_LEPTON_GET_HEIGHT: int

允许您获取 FLIR Lepton 图像分辨率的高度(以像素为单位)。

sensor.IOCTL_LEPTON_GET_RADIOMETRY: int

允许您获取 FLIR Lepton 类型(辐射或非辐射)。

sensor.IOCTL_LEPTON_GET_REFRESH: int

允许您获取 FLIR Lepton 刷新率(以赫兹为单位)。

sensor.IOCTL_LEPTON_GET_RESOLUTION: int

允许您获取 FLIR Lepton ADC 分辨率(以位为单位)。

sensor.IOCTL_LEPTON_RUN_COMMAND: int

根据FLIR Lepton SDK执行16位命令。

sensor.IOCTL_LEPTON_SET_ATTRIBUTE: int

根据 FLIR Lepton SDK 设置 FLIR Lepton 属性。

sensor.IOCTL_LEPTON_GET_ATTRIBUTE: int

根据 FLIR Lepton SDK获取 FLIR Lepton 属性。

sensor.IOCTL_LEPTON_GET_FPA_TEMPERATURE: int

获取以摄氏度为单位的 FLIR Lepton FPA 温度。

sensor.IOCTL_LEPTON_GET_AUX_TEMPERATURE: int

获取以摄氏度为单位的 FLIR Lepton AUX 温度。

sensor.IOCTL_LEPTON_SET_MEASUREMENT_MODE: int

允许您将 FLIR Lepton 驱动程序设置为可以获取每个像素的有效温度值的模式。有关更多信息,请参见 sensor.ioctl()

sensor.IOCTL_LEPTON_GET_MEASUREMENT_MODE: int

允许您获取FLIR Lepton 传感器是否启用了测量模式。有关更多信息,请参见 sensor.ioctl()

sensor.IOCTL_LEPTON_SET_MEASUREMENT_RANGE: int

允许您在测量模式下将像素映射到的温度范围。有关更多信息,请参见 sensor.ioctl()

sensor.IOCTL_LEPTON_GET_MEASUREMENT_RANGE: int

允许您获取用于测量模式的温度范围。有关更多信息,请参见 sensor.ioctl()

sensor.IOCTL_HIMAX_MD_ENABLE: int

允许您控制HM01B0的运动检测中断。有关更多信息,请参见 sensor.ioctl().

sensor.IOCTL_HIMAX_MD_CLEAR: int

允许您控制HM01B0的运动检测中断。有关更多信息,请参见 sensor.ioctl().

sensor.IOCTL_HIMAX_MD_WINDOW: int

允许您控制HM01B0的运动检测中断。有关更多信息,请参见 sensor.ioctl().

sensor.IOCTL_HIMAX_MD_THRESHOLD: int

允许您控制HM01B0的运动检测中断。有关更多信息,请参见 sensor.ioctl().

sensor.IOCTL_HIMAX_OSC_ENABLE: int

允许您控制HM01B0上的内部振荡器。有关更多信息,请参见 sensor.ioctl()

sensor.SINGLE_BUFFER: int

传递给 sensor.set_framebuffers() 以设置单缓冲区模式(1缓冲区)。

sensor.DOUBLE_BUFFER: int

传递给 sensor.set_framebuffers() 以设置双缓冲区模式(2缓冲区)。

sensor.TRIPLE_BUFFER: int

传递给 sensor.set_framebuffers() 以设置三缓冲区模式(3缓冲区)。

sensor.VIDEO_FIFO: int

传递给 sensor.set_framebuffers() 以设置视频FIFO模式(4缓冲区)。