3. pylon Viewer快速上手与参数调试

pylon Viewer 是 Basler pylon 软件平台自带的图形化相机调试工具,它把 GigE、USB3、CoaXPress 等接口相机的枚举、连接、取流、参数读写和图像保存集中在一个界面里。对刚接触 Basler 相机的开发者来说,先用 pylon Viewer 把相机跑通、把参数调对,再把这些参数迁移到 pylon SDK 代码中,是最省时间的路径。本节围绕界面布局、参数树、实时取流、曝光/增益/白平衡、像素格式、ROI、触发模式以及参数与图像的保存加载,给出一条可复现的调试主线。

界面布局与设备连接

pylon Viewer 主窗口大致分为四个区域:左侧是设备树(Device Tree),列出本机识别到的所有 Basler 相机及其接口类型;中间是图像显示区,用于实时预览和抓取单帧;右侧是参数树(Feature Tree),按类别组织相机所有 GenICam 特征;底部是状态与消息栏,显示连接状态、帧率、丢帧统计和错误信息。打开软件后,在设备树中双击目标相机即可建立连接,连接成功后状态栏会显示相机型号、序列号和当前采集状态。

如果设备树为空,通常需要检查三件事:网口相机是否与主机在同一网段、USB3 相机驱动是否安装、以及是否被其他进程(如另一份 pylon Viewer 或自研程序)占用。GigE 相机建议启用巨帧(Jumbo Frame),并把相机与主机置于独立网卡,避免与办公网络争抢带宽。

相机参数树的结构与读写逻辑

参数树是 pylon Viewer 的核心。它按 Image Format Control、Acquisition Control、Analog Control、Digital IO Control 等分组,每个节点对应一个 GenICam 特征。节点有几种典型状态:可读写的(如 ExposureTime)、只读的(如 ResultingFrameRate)、以及受其他参数约束而暂时不可用的(灰色)。理解“参数之间的依赖”比记住每个参数名更重要——例如像素格式会限制最大帧率,ROI 尺寸会影响帧率与带宽,触发模式会改变采集的启动方式。

pylon Viewer 参数调试主线与依赖关系 设备树 Basler acA1920-40gc GigE · 1920×1200 序列号 240xxxxx 双击连接 状态:已连接 帧率 40 fps 参数树(Feature Tree) Image Format Control Acquisition Control Analog Control Digital IO Control Transport Layer 可读写 / 只读 / 灰色不可用 图像显示区 实时预览 / 单帧抓取 1920 × 1200 · Mono8 曝光 5000 µs · 增益 0 dB 底部状态栏:帧率 / 丢帧 / 错误 关键参数依赖链:改一个参数,会影响哪些结果 像素格式 Mono8 / BayerRG8 ROI 尺寸 Width / Height / Offset 曝光 / 增益 ExposureTime / Gain 触发模式 Off / Software / Line1 结果:帧率 · 带宽 · 图像亮度 · 采集时序

实时图像采集与曝光/增益调节

连接相机后,点击工具栏的连续采集按钮即可看到实时画面。此时先关注底部状态栏的帧率是否稳定、有无丢帧。若帧率远低于预期,优先检查网卡带宽、ROI 是否过大、像素格式是否为高数据量格式。

曝光和增益在 Analog Control 组中。曝光时间(ExposureTime)决定传感器积分时间,单位微秒;增益(Gain)是对信号的电学放大,单位 dB。调试原则是:优先加曝光,慎加增益。曝光增加会提升亮度但可能引入运动模糊;增益增加会提升亮度但会放大噪声。以一条产线上的静态零件检测为例,可先把增益设为 0 dB,逐步增加曝光时间,直到图像直方图主体落在中高灰度区间且不过曝。若曝光已接近上限(受帧率约束)仍偏暗,再小幅增加增益,每次 1~2 dB,观察噪声是否可接受。

白平衡用于彩色相机。在 Analog Control 中可切换 BalanceWhiteAuto 为 Once 或 Continuous,也可手动设置 BalanceRatioRed、BalanceRatioGreen、BalanceRatioBlue。对颜色检测任务,建议先用 Once 在标准白板下完成一次白平衡,再切回 Off 锁定,避免自动白平衡在运行中漂移导致颜色判据不稳定。

像素格式切换与 ROI 设置

像素格式在 Image Format Control 的 PixelFormat 中选择。黑白相机常用 Mono8、Mono12;彩色相机常用 BayerRG8、BayerRG12、RGB8、BGR8。Mono8 每像素 1 字节,BayerRG8 也是 1 字节但需去马赛克,RGB8 每像素 3 字节,带宽是 Mono8 的三倍。切换格式后要重新确认帧率是否满足节拍。

ROI 同样在 Image Format Control 中设置,包括 Width、Height、OffsetX、OffsetY。缩小 ROI 能显著提高帧率并降低带宽。例如把 1920×1200 缩到 800×600,数据量约为原来的 20.8%,在带宽受限时帧率可明显回升。设置 Offset 时要注意不能超出传感器有效区域,且部分相机对 Offset 有对齐要求(如 2 或 4 像素对齐)。

触发模式配置

触发模式在 Acquisition Control 中配置。关键参数包括 TriggerMode(Off/On)、TriggerSource(Software、Line1、Line2 等)、TriggerActivation(RisingEdge/FallingEdge)以及 TriggerDelay。自由运行用 TriggerMode=Off;软触发用 TriggerMode=On、TriggerSource=Software,然后在 pylon Viewer 中点击软触发按钮;硬触发用 TriggerSource=Line1,由外部光电传感器或 PLC 给出上升沿。配置硬触发时,还要确认 LineSelector 与 LineMode 的输入输出方向正确,否则触发信号进不来。

参数保存与加载、图像保存与录像

调好参数后,pylon Viewer 支持把当前相机特征保存为 .pfs 文件(Feature Stream),也可保存为 .csv 便于查看。加载时选择对应文件即可把参数写回相机。注意:.pfs 保存的是特征值,不包含固件版本差异带来的兼容性问题,跨型号加载可能失败,建议同型号复用。

图像保存方面,pylon Viewer 支持单帧保存为 BMP、JPEG、PNG、TIFF 等格式,也支持连续录像保存为 AVI 或图像序列。录像时要注意磁盘写入速度,高分辨率高帧率下建议使用 SSD 并预留足够空间。保存路径和文件名可在保存对话框中设置,也可启用自动命名规则。

调试建议:每次只改一个参数,观察图像和状态栏变化,确认无误后再改下一个。把最终参数导出为 .pfs,并在文件名中标注相机型号、镜头、工作距离和日期,便于后续复现。

一个可复用的参数调试记录表

下面给出一份可直接填写的参数记录表示例,用于把 pylon Viewer 中的调试结果固化下来,方便迁移到 pylon SDK 代码或交接给同事。

参数项 示例值 说明
PixelFormat Mono8 黑白相机,带宽最低
Width / Height 800 / 600 ROI 缩小以提升帧率
OffsetX / OffsetY 560 / 300 对准目标区域,注意对齐要求
ExposureTime 5000 µs 先调曝光,保证亮度
Gain 0 dB 尽量不加,避免噪声
BalanceWhiteAuto Off 彩色相机锁定白平衡
TriggerMode On 硬触发采集
TriggerSource Line1 外部传感器输入
TriggerActivation RisingEdge 上升沿触发
ResultingFrameRate 约 60 fps 示例值,实际以状态栏为准

把这张表填完,再导出 .pfs,你就完成了一次完整的 pylon Viewer 调试闭环。后续在 pylon SDK 中,只需按表中参数名调用对应的 CInstantCamera 特征接口,即可复现同样的采集效果。