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.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 毫秒的帧。如果未指定
n
或time
,则此方法将跳过300毫秒的帧。如果两者都指定,则此方法将跳过
n
个帧,但在time
毫秒后超时。备注
sensor.snapshot()
可能会应用裁剪参数,以适应快照在可用 RAM 中的大小,包括像素格式、帧大小、窗口化和帧缓冲区。裁剪参数将应用于保持纵横比,并保持到调用sensor.set_framesize()
或sensor.set_windowing()
为止。
- sensor.get_fb() image.Image | None ¶
(获取帧缓冲区)返回先前调用
sensor.snapshot()
返回的图像对象。如果之前未调用过sensor.snapshot()
,则返回None
。
- sensor.get_id() int ¶
返回相机模块ID。
sensor.OV9650
:第一代 OpenMV Cam 传感器 - 从未发布。sensor.OV2640
:第二代 OpenMV Cam传感器 - 从未发布。sensor.OV5640
:高分辨率 OpenMV Cam H7 传感器。sensor.OV7725
:滚动快门传感器模块。sensor.OV7690
: OpenMV Cam Micro传感器模块。sensor.MT9V034
:全局快门传感器模块。sensor.MT9M114
:新型滚动快门传感器模块。sensor.LEPTON
:Lepton1/2/3传感器模块。sensor.HM01B0
: Arduino Portenta H7 传感器模块。sensor.GC2145
: Arduino Nicla Vision H7传感器模块。sensor.PAJ6100
:PixArt Imaging 传感器模块。
- sensor.alloc_extra_fb(width: int, height: int, pixformat: int) image.Image ¶
从帧缓冲区堆栈中为图像存储分配另一个帧缓冲区,并返回
width
、height
和pixformat
的image
对象。只要有可用的内存,您可以调用此函数任意次数,以分配任意数量的额外帧缓冲区。
如果
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 ¶
设置相机模块的像素格式。
sensor.GRAYSCALE
:每像素8位。sensor.RGB565
:每像素16位。sensor.BAYER
:每像素8位bayer模式。sensor.YUV422
:每像素16位(8位Y1,8位U,8位Y2,8位V,等等)sensor.JPEG
:压缩的 JPEG 数据。仅适用于 OV2640/OV5640。
如果您正在尝试使用 OV2640 或 OV5640 相机模块拍摄 JPEG 图像,并且分辨率较高,则应将 pixformat 设置为
sensor.JPEG
。然后,您可以使用sensor.set_quality()
控制图像质量。
- sensor.set_framesize(framesize: int) None ¶
设置相机模块的帧大小。
sensor.QQCIF
:88x72sensor.QCIF
:176x144sensor.CIF
:352x288sensor.QQSIF
:88x60sensor.QSIF
:176x120sensor.SIF
:352x240sensor.QQQQVGA
:40x30sensor.QQQVGA
:80x60sensor.QQVGA
:160x120sensor.QVGA
:320x240sensor.VGA
:640x480sensor.HQQQQVGA
:30x20sensor.HQQQVGA
:60x40sensor.HQQVGA
:120x80sensor.HQVGA
:240x160sensor.HVGA
:480x320sensor.B64X32
:64x32(用于Image.find_displacement()
)sensor.B64X64
:64x64(用于Image.find_displacement()
)sensor.B128X64
:128x64(用于Image.find_displacement()
)sensor.B128X128
:128x128(用于Image.find_displacement()
)sensor.B160X160
:160x160(用于 HM01B0)sensor.B320X320
:320x320(用于 HM01B0)sensor.LCD
:128x160(用于 LCD 屏幕)sensor.QQVGA2
:128x160(用于 LCD 屏幕)sensor.WVGA
:720x480(用于 MT9V034)sensor.WVGA2
:752x480(用于 MT9V034)sensor.SVGA
:800x600(仅适用于 OV2640/OV5640 传感器)sensor.XGA
:1024x768(仅适用于 OV2640/OV5640 传感器)sensor.WXGA
:1280x768(用于 MT9M114)sensor.SXGA
:1280x1024(仅适用于 OV2640/OV5640 传感器)sensor.SXGAM
:1280x960(用于 MT9M114)sensor.UXGA
:1600x1200(仅适用于 OV2640/OV5640 传感器)sensor.HD
:1280x720(仅适用于 OV2640/OV5640 传感器)sensor.FHD
:1920x1080(仅适用于 OV5640 传感器)sensor.QHD
:2560x1440(仅适用于 OV5640 传感器sensor.QXGA
:2048x1536(仅适用于 OV5640 传感器)sensor.WQXGA
:2560x1600(仅适用于 OV5640 传感器)sensor.WQXGA2
:2592x1944(仅适用于 OV5640 传感器)
- sensor.set_framerate(rate: int) None ¶
设置相机模块的帧率(以赫兹为单位)。
备注
set_framerate
通过丢弃相机模块接收到的帧来保持帧率等于(或低于)您指定的速率。默认情况下,相机将以最大帧率运行。如果为特定相机传感器实现了set_framerate
,那么它还将在内部降低相机传感器的帧率,以节省功耗并通过增加传感器曝光来提高图像质量。set_framerate
可能会与某些相机上的set_auto_exposure
冲突。
- 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_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.set_auto_exposure(enable: bool, exposure_us: int | None = None) None ¶
enable
打开(True)或关闭(False)自动曝光控制。相机启动时将打开自动曝光控制。如果
enable
为 False,则可以使用exposure_us
设置固定曝光时间(以微秒为单位)。备注
相机的自动曝光算法在调整曝光值时非常保守,通常不会大幅度改变曝光值。相反,算法会通过大幅调整增益值来应对光照变化。
- 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
传入True
或False
以打开或关闭 BLC。通常情况下,您始终希望将其打开。regs
如果禁用,则可以通过先前从get_blc_regs()
获得的值手动设置 blc 寄存器的值。
- sensor.get_blc_regs() Any ¶
以不透明的整数元组形式返回传感器blc寄存器。用于
set_auto_blc
。
- 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.set_auto_rotation(enable: bool) None ¶
打开(True)或关闭(False)自动旋转模式。默认为关闭。
备注
仅当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 卡,然后在桌面计算机上以比记录速度慢的速度播放视频。- 1 - 单缓冲区模式(也可以传递
- sensor.disable_delays(disable: bool | None = None) bool ¶
如果
disable
是True
,则禁用传感器模块中的所有延迟时间。每当您重置相机模块、更改模式等,传感器驱动程序都会延迟,以防止您在之后很快调用snapshot
并从相机模块接收损坏的帧。通过禁用延迟,您可以在最后延迟并调用snapshot
之前通过多个函数调用快速更新相机模块设置。如果此函数不带参数调用,则在禁用延迟时返回。
- sensor.disable_full_flush(disable: bool | None = None) bool ¶
如果
disable
是True
,则禁用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.get_color_palette() int ¶
返回当前的颜色调色板设置。默认为
image.PALETTE_RAINBOW
。
常量¶
- sensor.BINARY: int¶
二进制(位图)像素格式。每个像素为1位。
此格式对于掩码存储很有用。可以与
Image()
和sensor.alloc_extra_fb()
一起使用。
- 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.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.IOCTL_SET_FOV_WIDE: int¶
启用
sensor.set_framesize()
以优化视场而不是FPS。
- sensor.IOCTL_GET_FOV_WIDE: int¶
如果
sensor.set_framesize()
正在针对 FPS 的视野进行优化,则返回。
- 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缓冲区)。