13.1.6. 帧缓冲区查看器

帧缓冲区查看器显示摄像头所看到的内容——更确切地说,是正在运行的脚本最后留在摄像头帧缓冲区中的内容。每次 snapshot() 都会在那里放入一张新的捕获画面,而脚本随后在图像上绘制的所有内容也都在那里,因此预览显示的是脚本处理之后的帧,包括标注。IDE 通过 USB 向摄像头轮询最新的帧,并在每一帧到达时显示出来。

帧缓冲区窗格显示一张实时图像,其中一个物体上有一个选择矩形,标题栏中有录制、缩放、禁用和 JPG 模式按钮,下方的直方图根据所选区域进行计算

选中了某个区域的帧缓冲区:下方的读数行和直方图仅根据所选像素进行计算。

预览是有代价的:压缩和流式传输每一帧都会占用摄像头的时间,因此脚本在断开 IDE 连接时通常比开启实时预览时运行得更快。窗格标题栏的按钮用于权衡这种取舍:

  • 缩放——缩放图像以适应窗格(默认开启)。关闭时,图像以每个屏幕像素对应一个图像像素的方式渲染。

  • 禁用——完全停止流式传输帧,以获得摄像头端的最高性能。脚本会继续运行;预览会冻结在最后一帧上,并显示“帧缓冲区已禁用”横幅,直到你重新启用为止。在做性能基准测试时使用它,因为脚本在禁用预览时达到的 FPS 就是它独立运行时能达到的 FPS。

  • JPG 模式 / RAW 模式——决定帧在传输到 IDE 时是经过 JPEG 压缩还是以未压缩方式发送。该模式初始会采用所连接摄像头偏好的方式——大多数摄像头偏好 JPG。JPG 模式快得多;RAW 模式以帧率为代价显示精确的像素值。该按钮会在运行较新固件的摄像头上出现。

13.1.6.1. 选择区域

在图像上点击并拖动以选择一个矩形区域。当存在选区时,下方的直方图仅根据所选像素计算其统计数据,直方图上方的读数行会报告选区的位置、大小和像素数量——这是为脚本读取 ROI 元组、或测量单个物体(而非整个场景)的颜色统计数据的最快方式。不拖动直接点击可读取单个像素的位置;在图像外点击可清除选区。

13.1.6.2. 保存摄像头所看到的内容

右键点击图像可将显示的帧保存为计算机上的图像文件。保存会遵循选区:在选中的区域内右键点击,则仅保存该区域(菜单条目显示为“将图像选区保存到 PC”);在其他任何位置右键点击,则保存整帧。落到磁盘上的是你右键点击那一刻所显示的帧——若要从移动的场景中捕获某一确切的帧,请先停止脚本,让预览冻结在该帧上。