示例程序说明
示例程序列表
在 sample_v1 的基础上,sample_v2 的示例程序增加了便捷的相机控制接口,并提供了可选的 OpenCV 依赖,用户可以根据需要进行选择。
Sample_v1
ListDevices
:该示例程序用于枚举连接到上位机上的所有深度相机。
DeviceStorage
:该示例程序用于读写相机的 Custom Block Storage 组件区域 (64KB) 和 ISP Block Storage 组件区域 (64KB)。
DumpAllFeatures
:该示例程序用于枚举深度相机支持的各个组件和属性,以及各个属性支持的读写等信息。
ForceDeviceIP
:该示例程序用于强制设置网络深度相机的 IP 地址。
LoopDetect
:该示例程序用于处理因环境不稳定等因素造成的数据连接异常。
NetStatistic
:该示例程序用于统计网络深度相机的丢包率。
SimpleView_FetchFrame
:该示例程序用于深度相机工作在连续采集模式下连续采集图像并输出图像数据。
SimpleView_Callback
:该示例程序用于深度相机工作在连续采集模式下连续采集图像,在独立的数据处理线程(防止堵塞图像数据获取)中进行 OpenCV 渲染,并输出图像数据。
SimpleView_FetchHisto
:该示例程序用于获取图像亮度数据直方图。
SimpleView_MultiDevice
:该示例程序用于多台深度相机同时连续采集图像并输出图像数据。
SimpleView_Point3D
:该示例程序用于获取 3D 点云数据。
SimpleView_Registration
:该示例程序用于获取深度相机的内参、外参、深度图和彩色图,并将深度图和彩色图对齐。
SimpleView_TriggerDelay
:该示例程序用于设置硬件触发延时时间,深度相机在接收到硬件触发信号并等待特定延时之后采集图像。
SimpleView_TriggerMode0
:该示例程序用于设置深度相机工作在模式 0,相机连续采集图像并以最高帧率输出图像数据。
SimpleView_TriggerMode1
:该示例程序用于设置深度相机工作在模式 1,相机收到软触发指令或硬触发信号后采集图像并输出图像数据。
SimpleView_TriggerMode_M2S1
:该示例程序用于设置主设备(相机)工作在模式 2,多台从设备(相机)工作在模式 1,以实现多台深度相机级联触发,同时采集图像。主设备收到上位机发送的软件触发信号后,通过硬件 TRIG_OUT 接口输出触发信号,同时触发自身采集并输出深度图;从设备收到主设备的硬件触发信号后,采集并输出深度图。
SimpleView_TriggerMode_M3S1
:该示例程序用于设置主设备(相机)工作在模式 3,多台从设备(相机)工作在模式 1,以实现多台深度相机按照设置的帧率级联触发,同时采集图像。主设备按照设置的帧率,通过硬件 TRIG_OUT 接口输出触发信号,同时触发自身采集并输出深度图;从设备收到主设备的硬件触发信号后,采集并输出深度图。
SimpleView_SaveLoadConfig
:该示例程序用于将本地的 JSON 文件写入 Storage 组件,并从 Storage 组件中加载已写入的 JSON 文件。此外,程序还支持将 JSON 文件导出到本地,以便检查和配置参数。
SimpleView_XYZ48
:该示例程序用于解析并显示 XYZ 格式的深度图。
SimpleView_Point3D_XYZ48
:该示例程序用于获取深度为 xyz48 格式下的 3D 点云数据。
SimpleView_OpenWithIP
:该示例程序用于使用相机 IP 打开网络深度相机。
SimpleView_StreamAsync
:该示例程序用于在软触发模式下,设置相机数据流异步采集图像并输出图像数据。
SimpleView_StreamAsync1
:该示例程序用于在连续采集模式下,设置相机数据流异步采集图像并输出图像数据。
SimpleView_PixelsRegistration
:该示例程序用于显示深度图像中心在彩色图上的位置。
Sample_v2
ListDevices_v2
:该示例程序用于枚举连接到上位机上的所有深度相机。
DepthStream_v2
:该示例程序用于获取图漾相机的深度图像。
ExposureTimeSetting_v2
:该示例程序用于设置相机的彩色图曝光时间。
ForceDeviceIP_v2
:该示例程序用于强制设置网络深度相机的 IP 地址。
GetCalibData_v2
:该示例程序用于获取深度相机原始的标定参数。
TofDepthStream_v2
:该示例程序用于对 tof 深度图像进行畸变校正。
IREnhance_v2
:该示例程序实现 tof 相机红外图像的增强处理。
NetStatistic_v2
:该示例程序用于统计网络深度相机的丢包率。
OfflineReconnection_v2
:该示例程序用于图漾相机掉线后自动重连。
OpenWithInterface_v2
:该示例程序用于通过指定网卡打开图漾相机。
OpenWithIP_v2
:该示例程序用于通过指定 ip 打开图漾网络相机。
PointCloud_v2
:该示例程序用于获取并保存格式为 ply 的 3D 点云数据。
Registration_v2
:该示例程序用于 RGB-D 图像配准,支持将深度图像映射到彩色图像坐标系或将彩色图像映射到深度图像坐标系。
ResolutionSetting_v2
:该示例程序用于设置相机分辨率,支持通过交互方式或直接指定图像模式来设置分辨率。
SaveLoadConfig_v2
:该示例程序用于将相机参数保存到 custom_block.bin (相机内部存储区),并能从 custom_block.bin 导出相机参数至本地。
SoftTrigger_v2
:该示例程序用于相机收到软触发指令或硬触发信号后采集图像并输出图像数据。
StreamAsync_v2
:该示例程序用于配置图漾相机图像数据流异步输出。
framefetch.py
:该示例在连续采集模式下采集深度图和彩色图。frame_fetchIR.py
:该示例在连续采集模式下采集 IR 图。frame_isp.py
:该示例在软件层面对于彩色图像的 ISP 后处理,可将存在偏色的 RAW BAYER 图像处理成正常色彩空间的彩色图。frame_registration.py
:该示例用于采集 RGB-D 对齐图像。frame_trigger.py
:该示例用于设置相机工作在软触发模式下采集深度图。multidevice_fetch.py
:该示例设置多台相机进行图像采集。point3d_fetch.py
:该示例用于采集 3d 点云(未作显示),Log 信息显示点云个数和中心点云坐标(X, Y, Z)。parameter_settings.py
:该示例用于设置彩色图像曝光时间和分辨率。temp_read.py
:该示例用于读取温度传感器的温度。
fetch_frame.cs
:该示例在连续采集模式下采集深度图和彩色图。fetch_IR.cs
:该示例在连续采集模式下采集 IR 图。fetch_isp.cs
:该示例在软件层面对于彩色图像的 ISP 后处理,可将存在偏色的 RAW BAYER 图像处理成正常色彩空间的彩色图。fetch_registration.cs
:该示例用于采集 RGB-D 对齐图像。fetch_trigger.cs
:该示例用于设置相机工作在软触发模式下采集深度图。fetch_point3d.cs
:该示例用于采集 3d 点云(未作显示),Log 信息显示点云个数和中心点云坐标(X,Y,Z)。offline_reconnection.cs
:该示例用于图漾相机掉线后自动重连。parameter_settings.cs
:该示例用于设置相机参数。
实例:设置相机的 IP 地址
该部分主要介绍如何使用已编译的 ForceDeviceIP 例程为相机设置 IP 地址,以及常见的 IP 地址设置实例。
注解
IP 地址类型说明:
临时 IP 地址:手动配置并临时分配给设备的 IP 地址。
静态 IP 地址:手动配置并永久分配给设备的 IP 地址。
动态 IP 地址:由网络中的DHCP(动态主机配置协议)服务器自动分配的 IP 地址。
IP 地址指令说明
执行指令后,相机 IP 地址会修改为指令指定的 IP 地址,即时生效;相机断电重启后,恢复原有的 IP 配置。
指令:
ForceDeviceIP.exe -force <MAC> <newIP> <newNetmask> <newGateway>
示例:
ForceDeviceIP.exe -force 68:f7:56:36:90:a3 192.168.1.160 255.255.255.0 192.168.1.1
执行指令后,相机 IP 地址会修改为指令指定的 IP 地址,即时生效;相机断电重启后,设定的 IP 地址保持不变。
指令:
ForceDeviceIP.exe -static <MAC> <newIP> <newNetmask> <newGateway>
示例:
ForceDeviceIP.exe -static 68:f7:56:36:90:a3 192.168.1.160 255.255.255.0 192.168.1.1
执行指令后,相机 IP 地址会修改为指令指定的 IP 地址;相机断电重启后,主动以 DHCP 方式申请 IP。
指令:
ForceDeviceIP.exe -dynamic <MAC> <newIP> <newNetmask> <newGateway>
示例:
ForceDeviceIP.exe -dynamic 68:f7:56:36:90:a3 192.168.1.160 255.255.255.0 192.168.1.1
<MAC>
:相机机身标签上的 MAC 地址,格式为:xx:xx:xx:xx:xx:xx。<newIP>
: 新指定的 IP 地址。<newNetmask>
: 新 IP 地址对应的子网掩码。<newGateway>
: 新 IP 地址对应的默认网关。
IP 地址设置实例
实例1
为 Percipio 网络相机设置一个静态的 C 类 IP 地址(192.168.5.12)。
查看计算机当前的 IP 地址配置。
按下 WIN+R 输入 “cmd” 回车,在命令提示符中输入
ipconfig
回车即可查看网络配置。查看计算机 IP 地址
检查计算机的 IP 地址是否位于目标网段。
如果计算机的IP地址(比如192.168.6.xx)和目标网段(比如192.168.5.xx)不一致,则需修改计算机的 IP 地址。
打开 控制面板,依次点击 “网络和 Internet” > “网络和共享中心” > “更改适配器配置”。
右键点击以太网,在弹出的菜单中选择 “属性”。
在 以太网属性 窗口中,找到并双击 “Internet 协议版本 4 (TCP/IPv4)” ,在弹出的窗口中选择 “使用下面的 IP 地址” 并设置 IP 地址、子网掩码和网关:
修改计算机 IP 地址
进入 SDK “lib\win\hostapp\x64” 目录。在该目录下打开 Windows PowerShell,并执行以下命令:
ForceDeviceIP.exe -static 06:29:39:05:DA:D1 192.168.5.12 255.255.255.0 192.168.5.1
06:29:39:05:DA:D1
:相机的 MAC 地址。192.168.5.12
:新设的 IP 地址。255.255.255.0
:新 IP 地址对应的子网掩码。192.168.5.1
:新 IP 地址对应的默认网关。
查看计算机当前的 IP 地址配置。
打开终端,输入
ifconfig
回车即可查看网络配置。查看计算机 IP 地址
检查计算机的 IP 地址是否位于目标网段。
如果计算机的IP地址(比如192.168.6.xx)和目标网段(比如192.168.5.xx)不一致,则需修改计算机的 IP 地址。
打开计算机网络设置。依次点击 “设置” > “网络” > “更改设置” >
,进入当前连接的详细配置。
在 IPv4 选项卡中选择 “手动” 并填写 IP 地址、子网掩码和网关。
修改计算机 IP 地址
进入 SDK “camport3/sample/build/bin” 目录。在该目录下打开终端,并执行以下命令:
ForceDeviceIP -static 06:29:39:05:DA:D1 192.168.5.12 255.255.255.0 192.168.5.1
06:29:39:05:DA:D1
:相机的 MAC 地址。192.168.5.12
:新设的 IP 地址。255.255.255.0
:新 IP 地址对应的子网掩码。192.168.5.1
:新 IP 地址对应的默认网关。
实例2
为 Percipio 网络相机设置一个动态 IP 地址。
将计算机 IP 设置为 DHCP ,详细设置方式见 设置计算机网络(Windows 版)。
进入 SDK “lib\win\hostapp\x64” 目录。在该目录下打开 Windows PowerShell,并执行以下命令:
ForceDeviceIP.exe -dynamic 06:29:39:05:DA:D1
其中,06:29:39:05:DA:D1 是相机的 MAC 地址。
将计算机 IP 设置为 DHCP,详细设置方式见 设置计算机网络(Linux 版)。
进入 SDK “camport3/sample/build/bin” 目录。在该目录下打开终端,并执行以下命令:
ForceDeviceIP -dynamic 06:29:39:05:DA:D1
其中,06:29:39:05:DA:D1 是相机的 MAC 地址。