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()¶
初始化相机传感器。
- sensor.sleep(enable)¶
如果enable是True,则让相机进入睡眠状态。否则,唤醒相机。
- sensor.shutdown(enable)¶
将相机置于比睡眠模式更低的功耗模式(但相机必须在唤醒时进行重置)。
- sensor.flush()¶
将帧缓冲区中的内容复制到IDE中。如果不是在运行带有无循环的脚本,则应调用此方法来显示OpenMV Cam拍摄的最后一张图像。请注意,在脚本完成后,您需要添加约一秒的延迟时间,以便IDE从相机中获取图像。否则,此方法无效。
- sensor.snapshot()¶
使用相机拍照并返回一个
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, time])¶
获取
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.width()¶
返回传感器分辨率的宽度。
- sensor.height()¶
返回传感器分辨率的高度。
- sensor.get_fb()¶
(获取帧缓冲区)返回先前调用
sensor.snapshot()
返回的图像对象。如果之前未调用过sensor.snapshot()
,则返回None
。
- sensor.get_id()¶
返回相机模块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, height, pixformat)¶
从帧缓冲区堆栈中为图像存储分配另一个帧缓冲区,并返回
width
、height
和pixformat
的image
对象。只要有可用的内存,您可以调用此函数任意次数,以分配任意数量的额外帧缓冲区。
如果
pixformat
是大于等于 4 的数字,则将分配 JPEG 图像。然后,您可以使用Image.bytearray()
来获得对 JPEG 图像的字节级读写访问。备注
创建次要图像通常需要在堆上创建它们,堆上的RAM有限…但是,也会变得碎片化,使得很难获得一个大的连续内存数组来存储图像。使用此方法,您可以通过立即从我们用于计算机视觉算法的帧缓冲区堆栈内存中获取空间来分配一个非常大的内存数组以存储图像。也就是说,这也意味着如果您尝试执行更多内存密集型的机器视觉算法,如
Image.find_apriltags()
,则会更容易耗尽内存。
- sensor.dealloc_extra_fb()¶
释放上一个先前分配的额外帧缓冲区。额外帧缓冲区用于存储在类似堆栈的结构中。
备注
您的OpenMV Cam有两个内存区域。首先,您有您的经典.data/.bss/heap/stack内存区域。.data/.bss/heap区域由固件固定。堆然后向下增长,直到它到达堆。接下来,帧缓冲区存储在第二个内存区域中,主帧缓冲区位于底部,帧缓冲区堆栈位于顶部。当调用
sensor.snapshot()
时,它将从底部填充帧缓冲区。然后,帧缓冲区堆栈将使用剩余的任何内存。这种内存分配方法非常适用于微控制器上的计算机视觉。
- sensor.set_pixformat(pixformat)¶
设置相机模块的像素格式。
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.get_pixformat()¶
返回相机模块的像素格式。
- sensor.set_framesize(framesize)¶
设置相机模块的帧大小。
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.get_framesize()¶
返回相机模块的帧大小。
- sensor.set_framerate(rate)¶
设置相机模块的帧率(以赫兹为单位)。
备注
set_framerate
通过丢弃相机模块接收到的帧来保持帧率等于(或低于)您指定的速率。默认情况下,相机将以最大帧率运行。如果为特定相机传感器实现了set_framerate
,那么它还将在内部降低相机传感器的帧率,以节省功耗并通过增加传感器曝光来提高图像质量。set_framerate
可能会与某些相机上的set_auto_exposure
冲突。
- sensor.get_framerate()¶
返回相机模块的帧率(以赫兹为单位)。
- sensor.set_windowing(roi)¶
将相机的分辨率设置为当前分辨率内的子分辨率。例如,将分辨率设置为
sensor.VGA
,然后将窗口设置为(120,140,200,200)将使sensor.snapshot()
捕获相机传感器输出的VGA分辨率的中心200×200像素。您可以使用窗口化来获取自定义分辨率。此外,在较大分辨率上使用窗口化实际上是数字变焦。roi
是一个矩形元组 (x, y, w, h)。但是,您也可以只传递 (w, h),并且roi
将在帧中居中。您还可以不使用括号传递 roi。此函数将自动处理将传递的roi裁剪到帧大小。
- sensor.get_windowing()¶
返回先前使用
sensor.set_windowing()
设置的roi
元组 (x, y, w, h)。
- sensor.set_gainceiling(gainceiling)¶
设置相机图像增益上限。2、4、8、16、32、64 或 128。
- sensor.set_contrast(constrast)¶
设计相机图像对比度。-3 到 +3。
- sensor.set_brightness(brightness)¶
设置相机图像亮度。-3 到 +3。
- sensor.set_saturation(saturation)¶
设置相机图像饱和度。-3 到 +3。
- sensor.set_quality(quality)¶
设置相机图像JPEG压缩质量。0 - 100。
备注
仅适用于 OV2640/OV5640 相机。
- sensor.set_colorbar(enable)¶
打开(True)或关闭(False)彩色条模式。默认为关闭。
- sensor.set_auto_gain(enable[, gain_db=-1[, gain_db_ceiling]])¶
enable
打开(True)或关闭(False)自动增益控制。相机将启动时默认启用自动增益控制。如果
enable
为 False,则可以使用gain_db
设置固定增益(以分贝为单位)。如果
enable
为 True,则可以使用gain_db_ceiling
设置自动增益控制算法的最大增益上限(以分贝为单位)。备注
如果要跟踪颜色,您需要关闭白平衡。
- sensor.get_gain_db()¶
以分贝(float)为单位返回当前相机增益值。
- sensor.set_auto_exposure(enable[, exposure_us])¶
enable
打开(True)或关闭(False)自动曝光控制。相机启动时将打开自动曝光控制。如果
enable
为 False,则可以使用exposure_us
设置固定曝光时间(以微秒为单位)。备注
相机自动曝光算法对于调整曝光值的幅度非常保守,并且通常会避免大幅度更改曝光值。相反,它们会频繁更改增益值来处理变化的光照。
- sensor.get_exposure_us()¶
返回以微秒(int)为单位的当前相机曝光时间。
- sensor.set_auto_whitebal(enable[, rgb_gain_db])¶
enable
参数用于打开(True)或关闭(False)自动白平衡。相机将以自动白平衡状态启动。如果
enable
为 False,则可以使用rgb_gain_db
分别设置红色、绿色和蓝色通道的固定增益(以分贝为单位)。备注
如果要跟踪颜色,则还需要关闭增益控制。
- sensor.get_rgb_gain_db()¶
返回当前相机的红色、绿色、蓝色增益值的元组,以分贝为单位((float, float, float))。
- sensor.set_auto_blc([enable[, regs]])¶
设置相机的自动黑色校准(blc)控制。
enable
传入True
或False
以打开或关闭 BLC。通常情况下,您始终希望将其打开。regs
如果禁用,则可以通过先前从get_blc_regs()
获得的值手动设置 blc 寄存器的值。
- sensor.get_blc_regs()¶
以不透明的整数元组形式返回传感器blc寄存器。用于
set_auto_blc
。
- sensor.set_hmirror(enable)¶
打开(True)或关闭(False)水平镜像模式。默认为关闭。
- sensor.get_hmirror()¶
如果启用了水平镜像模式则返回。
- sensor.set_vflip(enable)¶
打开(True)或关闭(False)垂直翻转模式。默认为关闭。
- sensor.get_vflip()¶
如果垂直翻转模式启用则返回。
- sensor.set_transpose(enable)¶
打开(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()¶
如果转置模式启用则返回。
- sensor.set_auto_rotation(enable)¶
打开(True)或关闭(False)自动旋转模式。默认为关闭。
备注
仅当OpenMV Cam安装了
imu
并自动启动时,此函数才有效。
- sensor.set_framebuffers(count)¶
设置用于接收图像数据的帧缓冲区数量。默认情况下,您的 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 Cam 将为接收图像分配两个帧缓冲区。当您调用
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.get_framebuffers()¶
返回当前分配的帧缓冲区数量。
- sensor.disable_delays([disable])¶
如果
disable
是True
,则禁用传感器模块中的所有延迟时间。每当您重置相机模块、更改模式等,传感器驱动程序都会延迟,以防止您在之后很快调用snapshot
并从相机模块接收损坏的帧。通过禁用延迟,您可以在最后延迟并调用snapshot
之前通过多个函数调用快速更新相机模块设置。如果此函数不带参数调用,则在禁用延迟时返回。
- sensor.disable_full_flush([disable])¶
如果
disable
是True
,则禁用set_framebuffers
中提到的自动帧缓冲刷新。这将移除帧缓冲 FIFO 中帧的任何时间限制。例如,如果您将帧缓冲区数设置为 30,并将帧速率设置为 30,现在您可以精确地从相机记录 1 秒的视频,而不会丢失帧。如果此函数不带参数调用,则返回自动刷新是否已禁用。默认情况下,启用帧丢失时的自动刷新以清除陈旧的帧。
备注
snapshot
启动帧捕获过程,该过程将继续捕获帧,直到没有空间来容纳帧为止,此时帧捕获过程停止。当没有空间来容纳下一个帧时,进程始终会停止。
- sensor.set_lens_correction(enable, radi, coef)¶
enable
为 True 则启用,为 False 则禁用(bool)。radi
要更正的像素半径(int)。coef
更正的幂(int)。
- sensor.set_vsync_callback(cb)¶
注册回调函数
cb
(在中断上下文中执行),每当相机模块生成新帧时(但在接收到帧之前)执行。cb
接受一个参数,并传递更改后的垂直同步引脚的当前状态。
- sensor.set_frame_callback(cb)¶
注册回调函数
cb
(在中断上下文中执行),每当相机模块生成新帧并准备通过sensor.snapshot()
读取时执行。cb
不接受参数。使用此功能获取中断以稍后使用
micropython.schedule()
读取帧。
- sensor.get_frame_available()¶
如果通过调用
sensor.snapshot()
读取帧,则返回True。
- sensor.ioctl(...)¶
执行传感器特定方法:
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)¶
设置用于 FLIR Lepton 灰度到 RGB565 转换的颜色调色板。
- sensor.get_color_palette()¶
返回当前的颜色调色板设置。默认为
image.PALETTE_RAINBOW
。
- sensor.__write_reg(address, value)¶
将
value
(int)写入到地址为address
(int)的相机寄存器中。备注
有关寄存器信息,请参阅相机数据表。
- sensor.__read_reg(address)¶
读取地址为
address
(int)的相机寄存器。备注
有关寄存器信息,请参阅相机数据表。
常量¶
- sensor.BINARY¶
二进制(位图)像素格式。每个像素为1位。
此格式用于掩码存储。可与
image.Image()
和sensor.alloc_extra_fb()
一起使用。
- sensor.GRAYSCALE¶
灰度像素格式(来自YUV422的Y)。每个像素为8位,1字节。
所有我们的计算机视觉算法在灰度图像上运行速度比RGB565图像快。
- sensor.RGB565¶
RGB565像素格式。每个像素为16位,即2字节。5位用于红色,6位用于绿色,5位用于蓝色。
所有我们的计算机视觉算法在RGB565图像上运行速度比灰度图像慢。
- sensor.BAYER¶
RAW BAYER图像像素格式。如果尝试使帧大小过大而无法适应帧缓冲区,则您的OpenMV Cam将像素格式设置为BAYER,以便您可以捕获图像,但只有一些图像处理方法将可用。
- sensor.YUV422¶
非常容易进行JPEG压缩的像素格式。每个像素都存储为一个灰度8位Y值,后跟交替的8位U/V颜色值,这些值在两个Y值之间共享(8位Y1,8位U,8位Y2,8位V,等等)。只有一些图像处理方法适用于YUV422。
- sensor.JPEG¶
JPEG模式。摄像头模块输出压缩的jpeg图像。使用
sensor.set_quality()
控制jpeg质量。仅适用于OV2640/OV5640摄像头。
- sensor.OV2640¶
sensor.get_id()
返回OV2640相机的值。
- sensor.OV5640¶
sensor.get_id()
返回OV5640相机的值。
- sensor.OV7690¶
sensor.get_id()
返回OV7690相机的值。
- sensor.OV7725¶
sensor.get_id()
返回OV7725相机的值。
- sensor.OV9650¶
sensor.get_id()
返回OV9650相机的值。
- sensor.MT9V022¶
sensor.get_id()
返回MT9V022相机的值。
- sensor.MT9V024¶
sensor.get_id()
返回MT9V024相机的值。
- sensor.MT9V032¶
sensor.get_id()
返回MT9V032相机的值。
- sensor.MT9V034¶
sensor.get_id()
返回MT9V034相机的值。
- sensor.MT9M114¶
sensor.get_id()
返回MT9M114相机的值。
- sensor.LEPTON¶
sensor.get_id()
返回LEPTON1/2/3相机的值。
- sensor.HM01B0¶
sensor.get_id()
返回HM01B0相机的值。
- sensor.HM0360¶
sensor.get_id()
返回HM01B0相机的值。
- sensor.GC2145¶
sensor.get_id()
返回GC2145相机的值。
- sensor.PAJ6100¶
sensor.get_id()
返回PAJ6100相机的值。
- sensor.FROGEYE2020¶
sensor.get_id()
返回FROGEYE2020相机的值。
- sensor.QQCIF¶
88x72分辨率的相机传感器。
- sensor.QCIF¶
176x144 分辨率的相机传感器。
- sensor.CIF¶
352x288 分辨率的相机传感器。
- sensor.QQSIF¶
88x60 分辨率的相机传感器。
- sensor.QSIF¶
176x120 分辨率的相机传感器。
- sensor.SIF¶
352x240 分辨率的相机传感器。
- sensor.QQQQVGA¶
40x30 分辨率的相机传感器。
- sensor.QQQVGA¶
80x60 分辨率的相机传感器。
- sensor.QQVGA¶
160x120 分辨率的相机传感器。
- sensor.QVGA¶
320x240 分辨率的相机传感器。
- sensor.VGA¶
640x480 分辨率的相机传感器。
- sensor.HQQQQVGA¶
30x20 分辨率的相机传感器。
- sensor.HQQQVGA¶
60x40 分辨率的相机传感器。
- sensor.HQQVGA¶
120x80 分辨率的相机传感器。
- sensor.HQVGA¶
240x160 分辨率的相机传感器。
- sensor.HVGA¶
480x320 分辨率的相机传感器。
- sensor.B64X32¶
64x32 分辨率的相机传感器。
用于
Image.find_displacement()
和任何其他基于FFT的算法。
- sensor.B64X64¶
64x64 分辨率的相机传感器。
用于
Image.find_displacement()
和任何其他基于FFT的算法。
- sensor.B128X64¶
128x64 分辨率的相机传感器。
用于
Image.find_displacement()
和任何其他基于FFT的算法。
- sensor.B128X128¶
128x128 分辨率的相机传感器。
用于
Image.find_displacement()
和任何其他基于FFT的算法。
- sensor.B160X160¶
HM01B0相机传感器的160x160分辨率。
- sensor.B320X320¶
HM01B0相机传感器的320x320分辨率。
- sensor.LCD¶
相机传感器的分辨率为 128x160(与 LCD 保护罩一起使用)。
- sensor.QQVGA2¶
相机传感器的分辨率为 128x160(与 LCD 保护罩一起使用)。
- sensor.WVGA¶
MT9V034相机传感器的720x480分辨率。
- sensor.WVGA2¶
MT9V034相机传感器的752x480分辨率。
- sensor.SVGA¶
800x600 分辨率的相机传感器。
- sensor.XGA¶
1024x768 分辨率的相机传感器。
- sensor.WXGA¶
MT9M114相机传感器的1280x768分辨率。
- sensor.SXGA¶
1280x1024 分辨率的相机传感器。仅适用于OV2640/OV5640相机。
- sensor.SXGAM¶
MT9M114相机传感器的1280x960分辨率。
- sensor.UXGA¶
1600x1200 分辨率的相机传感器。仅适用于 OV2640/OV5640相机。
- sensor.HD¶
1280x720 分辨率的相机传感器。
- sensor.FHD¶
1920x1080 分辨率的相机传感器。仅适用于 OV5640 相机。
- sensor.QHD¶
2560x1440 分辨率的相机传感器。仅适用于 OV5640 相机。
- sensor.QXGA¶
2048x1536 分辨率的相机传感器。仅适用于 OV5640 相机。
- sensor.WQXGA¶
2560x1600 分辨率的相机传感器。仅适用于 OV5640 相机。
- sensor.WQXGA2¶
2592x1944 分辨率的相机传感器。仅适用于 OV5640 相机。
- sensor.IOCTL_SET_READOUT_WINDOW¶
允许您设置OV5640的读出窗口。
- sensor.IOCTL_GET_READOUT_WINDOW¶
允许您获取OV5640的读出窗口。
- sensor.IOCTL_SET_TRIGGERED_MODE¶
允许您设置MT9V034的触发模式。
- sensor.IOCTL_GET_TRIGGERED_MODE¶
允许您获取MT9V034的触发模式。
- sensor.IOCTL_SET_FOV_WIDE¶
启用
sensor.set_framesize()
以优化视场而不是FPS。
- sensor.IOCTL_GET_FOV_WIDE¶
如果
sensor.set_framesize()
正在针对 FPS 的视野进行优化,则返回。
- sensor.IOCTL_TRIGGER_AUTO_FOCUS¶
用于触发OV5640 FPC相机模块的自动对焦。
- sensor.IOCTL_PAUSE_AUTO_FOCUS¶
用于暂停OV5640 FPC相机模块的自动对焦(在运行时)。
- sensor.IOCTL_RESET_AUTO_FOCUS¶
用于将自动对焦重置为OV5640 FPC相机模块的默认设置。
- sensor.IOCTL_WAIT_ON_AUTO_FOCUS¶
用于等待OV5640 FPC相机模块触发后自动对焦完成。
- sensor.IOCTL_SET_NIGHT_MODE¶
用于在传感器上打开或关闭夜间模式。夜间模式会降低帧速率以动态增加曝光。
- sensor.IOCTL_GET_NIGHT_MODE¶
获取传感器是否启用或禁用夜间模式的当前值。
- 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 设置 FLIR Lepton 属性。
- sensor.IOCTL_LEPTON_GET_ATTRIBUTE¶
根据 FLIR Lepton SDK获取 FLIR Lepton 属性。
- sensor.IOCTL_LEPTON_GET_FPA_TEMPERATURE¶
获取以摄氏度为单位的 FLIR Lepton FPA 温度。
- sensor.IOCTL_LEPTON_GET_AUX_TEMPERATURE¶
获取以摄氏度为单位的 FLIR Lepton AUX 温度。
- sensor.IOCTL_LEPTON_SET_MEASUREMENT_MODE¶
允许您将 FLIR Lepton 驱动程序设置为可以获取每个像素的有效温度值的模式。有关更多信息,请参见
sensor.ioctl()
。
- sensor.IOCTL_LEPTON_GET_MEASUREMENT_MODE¶
允许您获取FLIR Lepton 传感器是否启用了测量模式。有关更多信息,请参见
sensor.ioctl()
。
- sensor.IOCTL_LEPTON_SET_MEASUREMENT_RANGE¶
允许您在测量模式下将像素映射到的温度范围。有关更多信息,请参见
sensor.ioctl()
。
- sensor.IOCTL_LEPTON_GET_MEASUREMENT_RANGE¶
允许您获取用于测量模式的温度范围。有关更多信息,请参见
sensor.ioctl()
。
- sensor.IOCTL_HIMAX_MD_ENABLE¶
允许您控制HM01B0的运动检测中断。有关更多信息,请参见
sensor.ioctl()
.
- sensor.IOCTL_HIMAX_MD_CLEAR¶
允许您控制HM01B0的运动检测中断。有关更多信息,请参见
sensor.ioctl()
.
- sensor.IOCTL_HIMAX_MD_WINDOW¶
允许您控制HM01B0的运动检测中断。有关更多信息,请参见
sensor.ioctl()
.
- sensor.IOCTL_HIMAX_MD_THRESHOLD¶
允许您控制HM01B0的运动检测中断。有关更多信息,请参见
sensor.ioctl()
.
- sensor.IOCTL_HIMAX_OSC_ENABLE¶
允许您控制HM01B0上的内部振荡器。有关更多信息,请参见
sensor.ioctl()
。
- sensor.SINGLE_BUFFER¶
传递给
sensor.set_framebuffers()
以设置单缓冲区模式(1缓冲区)。
- sensor.DOUBLE_BUFFER¶
传递给
sensor.set_framebuffers()
以设置双缓冲区模式(2缓冲区)。
- sensor.TRIPLE_BUFFER¶
传递给
sensor.set_framebuffers()
以设置三缓冲区模式(3缓冲区)。
- sensor.VIDEO_FIFO¶
传递给
sensor.set_framebuffers()
以设置视频FIFO模式(4缓冲区)。