Diagnostics(诊断)

API:C++C#Python

The diagnostics setting lets you:

  • re-run processing on a frame using different processing settings without having to re-capture

  • 在捕获期间收集额外的诊断和调试数据

当遇到点云或彩色图像问题时这很有用。

小技巧

请参阅指南 捕获高质量的点云。

启用此设置后,附加数据将保存在.zdf 文件中。请将.zdf 文件发送给 Zivid 支持团队,以获得更好的帮助和更彻底的故障排除。

Settings Diagnostics API

Zivid::Settings::Diagnostics
new Zivid.NET.Settings { Diagnostics = .. }
zivid.settings.diagnostics
查看源码

源码

std::cout << "Configuring settings for 2D+3D capture" << std::endl;
auto settings = Zivid::Settings{ Zivid::Settings::Acquisitions{
                                     Zivid::Settings::Acquisition{ Zivid::Settings::Acquisition{} } },
                                 Zivid::Settings::Color{ Zivid::Settings2D{
                                     Zivid::Settings2D::Acquisitions{ Zivid::Settings2D::Acquisition{} } } } };

std::cout << "Enabling diagnostics" << std::endl;
settings.set(Zivid::Settings::Diagnostics::Enabled::yes);

std::cout << "Capturing 2D+3D frame" << std::endl;
const auto frame = camera.capture2D3D(settings);

const auto dataFile = "FrameWithDiagnostics.zdf";
std::cout << "Saving frame with diagnostic data to file: " << dataFile << std::endl;
frame.save(dataFile);
查看源码

源码

Console.WriteLine("Configuring settings for 2D+3D capture");
var settings = new Zivid.NET.Settings
{
    Acquisitions = { new Zivid.NET.Settings.Acquisition { } },
    Color = new Zivid.NET.Settings2D { Acquisitions = { new Zivid.NET.Settings2D.Acquisition { } } }
};

Console.WriteLine("Enabling diagnostics");
settings.Diagnostics.Enabled = true;

Console.WriteLine("Capturing 2D+3D frame");
using (var frame = camera.Capture2D3D(settings))
{
    var dataFile = "FrameWithDiagnostics.zdf";
    Console.WriteLine("Saving frame with diagnostic data to file: " + dataFile);
    frame.Save(dataFile);
}
查看源码

源码

print("Configuring settings for 2D+3D capture")
settings = zivid.Settings(
    acquisitions=[zivid.Settings.Acquisition()],
    color=zivid.Settings2D(acquisitions=[zivid.Settings2D.Acquisition()]),
)

print("Enabling diagnostics")
settings.diagnostics.enabled = True

print("Capturing 2D+3D frame")
frame = camera.capture_2d_3d(settings)
data_file = "FrameWithDiagnostics.zdf"
print(f"Saving frame with diagnostic data to file: {data_file}")
frame.save(data_file)

如需了解更多关于 Zivid API 的信息,请查看 API 参考。

Settings2D Diagnostics API

也可以为仅 2D 的捕获启用诊断功能。启用后,附加数据将与 2D 帧一起保存在 .zdf 文件中。生成的 .zdf 文件包含一个 Frame2D,必须使用 Frame2D API 加载;有关保存和加载工作流程,请参阅 2D 图像捕获流程。

Zivid::Settings2D::Diagnostics
new Zivid.NET.Settings2D { Diagnostics = .. }
zivid.Settings2D.diagnostics
查看源码

源码

std::cout << "Configuring settings for 2D capture" << std::endl;
auto settings2D = Zivid::Settings2D{ Zivid::Settings2D::Acquisitions{ Zivid::Settings2D::Acquisition{} } };

std::cout << "Enabling 2D diagnostics" << std::endl;
settings2D.set(Zivid::Settings2D::Diagnostics::Enabled::yes);

std::cout << "Capturing 2D frame" << std::endl;
const auto frame2D = camera.capture2D(settings2D);

const auto dataFile2D = "Frame2DWithDiagnostics.zdf";
std::cout << "Saving 2D frame with diagnostic data to file: " << dataFile2D << std::endl;
frame2D.save(dataFile2D);
查看源码

源码

Console.WriteLine("Configuring settings for 2D capture");
var settings2D = new Zivid.NET.Settings2D
{
    Acquisitions = { new Zivid.NET.Settings2D.Acquisition { } }
};

Console.WriteLine("Enabling 2D diagnostics");
settings2D.Diagnostics.Enabled = true;

Console.WriteLine("Capturing 2D frame");
using (var frame2D = camera.Capture2D(settings2D))
{
    var dataFile2D = "Frame2DWithDiagnostics.zdf";
    Console.WriteLine("Saving 2D frame with diagnostic data to file: " + dataFile2D);
    frame2D.Save(dataFile2D);
}
查看源码

源码

print("Configuring settings for 2D capture")
settings_2d = zivid.Settings2D(acquisitions=[zivid.Settings2D.Acquisition()])

print("Enabling 2D diagnostics")
settings_2d.diagnostics.enabled = True

print("Capturing 2D frame")
frame_2d = camera.capture_2d(settings_2d)
data_file_2d = "Frame2DWithDiagnostics.zdf"
print(f"Saving 2D frame with diagnostic data to file: {data_file_2d}")
frame_2d.save(data_file_2d)

备注

诊断功能会增加捕获时间、RAM 使用率和.zdf 文件的大小。

小技巧

建议在向 Zivid 的支持团队报告问题时启用诊断功能。

版本历史

SDK

变更

2.18.0

为 2D 捕获添加了诊断功能支持(Settings2D::Diagnostics)。

2.6

增加了诊断 API。