文章目录
- 前言
- 示例程序说明
- 1.SDK支持的平台类型
- 1.1 Windows 平台
- 1.2 Linux平台
- 2.Sample_V2编译流程
- 2.1 Windows环境
- 2.2 Linux环境编译
- 3.Sample_V2示例程序测试
- 3.1 ListDevice_v2 枚举相机
- 3.2 DepthStream_v2 获取深度图像
- 3.3 ExposureTimeSetting_v2 设置曝光时间
- 3.4 ForceDeviceIP_v2 设置静态IP
- 3.5 GetCalibData_v2 获取相机标定参数
- 3.6 NetStatistic_v2 测试相机网络情况
- 3.7 OfflineReconnection_v2 单掉线重连
- 3.8 MultiDeviceOfflineReconnection_v2 多相机掉线重连
- 3.9 OpenWithInterface_v2 指定网卡打开相机
- 3.10 OpenWithIP_v2 通过IP打开相机
- 3.11 PointCloud_v2 保存点云
- 3.12 Registration_v2 图像对齐
- 3.13 ResolutionSetting_v2 设置图像分辨率
- 3.14 SaveLoadConfig_v2 保存和加载相机配置
- 3.15 SoftTrigger_v2 软触发出图
- 3.16 StreamAsync_v2 相机异步采图
- 3.17 ToFDepthStream_v2 TOF相机获取深度图
- 3.18 IREnhance_v2 IR图像增强
- 4.参考例程
- 4.1 深度图填充空洞/去噪/时域滤波例程
- 5.常见问题FAQ
前言
请参考图漾官网的在线文档:
C++示例程序下载
对于载Ubuntu环境下编译,补充编译步骤如下:
cd/build/release sudo cp lib/linux/lib_x64/libtycam.so*/usr/lib/cd sample mkdir build cd build cmake..make如果需要只编译sample_v2,关闭sample_v1,则cmake增加如下参数:
cmake..-DBUILD_SAMPLES=off在sample_v2基础上关闭对opencv依赖,则cmake增加如下:
cmake..-DBUILD_SAMPLES=off-DBUILD_SAMPLE_V2_WITH_OPENCV=off示例程序说明
1.ListDevices_v2:该示例程序用于枚举连接到上位机上的所有深度相机。
2.DepthStream_v2:该示例程序用于获取图漾相机的深度图像。
3.ExposureTimeSetting_v2:该示例程序用于设置相机的彩色图曝光时间。
4.ForceDeviceIP_v2:该示例程序用于强制设置网络深度相机的 IP 地址。
5.GetCalibData_v2:该示例程序用于获取深度相机原始的标定参数。
6.TofDepthStream_v2:该示例程序用于对 tof 深度图像进行畸变校正。
7.IREnhance_v2:该示例程序实现 tof 相机红外图像的增强处理。
8.NetStatistic_v2:该示例程序用于统计网络深度相机的丢包率。
9.OfflineReconnection_v2:该示例程序用于图漾相机掉线后自动重连。
10.OpenWithInterface_v2:该示例程序用于通过指定网卡打开图漾相机。
11.OpenWithIP_v2:该示例程序用于通过指定 ip 打开图漾网络相机。
12.PointCloud_v2:该示例程序用于获取并保存格式为 ply 的 3D 点云数据。
13.Registration_v2:该示例程序用于 RGB-D 图像配准,支持将深度图像映射到彩色图像坐标系或将彩色图像映射到深度图像坐标系。
14.ResolutionSetting_v2:该示例程序用于设置相机分辨率,支持通过交互方式或直接指定图像模式来设置分辨率。
15.SaveLoadConfig_v2:该示例程序用于将相机参数保存到 custom_block.bin (相机内部存储区),并能从 custom_block.bin 导出相机参数至本地。
16.SoftTrigger_v2:该示例程序用于相机收到软触发指令或硬触发信号后采集图像并输出图像数据。
17.StreamAsync_v2:该示例程序用于配置图漾相机图像数据流异步输出。
1.SDK支持的平台类型
1.1 Windows 平台
Windows SDK 支持 X86(32位)和 X64(64位)硬件平台,并提供支持 Window7 及以上版本操作系统的驱动文件。
1.2 Linux平台
Linux SDK 支持 AArch64、ARMv7hf、RaspberryPi、i686 和 x86-64 硬件平台,并为开发者编译程序提供相应平台的库文件。
2.Sample_V2编译流程
Sample_V2例子是在SDK更新至3.6.66之后增加的,之前版本没有V2系列的Sample。
2.1 Windows环境
进入官网SDK链接,下载对应C++版本SDK
SDK下载链接
具体编译过程,可参看如下链接:
C++版本SDK编译链接
2.2 Linux环境编译
Ubuntu环境下,编译步骤如下:
cd/build/release sudo cp lib/linux/lib_x64/libtycam.so*/usr/lib/cd sample mkdir build cd build cmake..make如果需要只编译sample_v2,关闭sample_v1,则cmake增加如下参数:
cmake..-DBUILD_SAMPLES=off在sample_v2基础上关闭对opencv依赖,则cmake增加如下:
cmake..-DBUILD_SAMPLES=off-DBUILD_SAMPLE_V2_WITH_OPENCV=off3.Sample_V2示例程序测试
3.1 ListDevice_v2 枚举相机
该示例程序用于枚举连接到上位机上的所有深度相机。
3.2 DepthStream_v2 获取深度图像
该示例程序用于获取图漾相机的深度图像。
3.3 ExposureTimeSetting_v2 设置曝光时间
该示例程序用于展示如何设置相机的彩色曝光时间。
注意: 该程序默认设置RGB曝光时间为-1,无法设置成功,错-1013(out ofrange),可通过键盘输入的方式,设置合适的值。若不清楚曝光时间范围,可通过percipioviewer软件查看属性范围。
3.4 ForceDeviceIP_v2 设置静态IP
该示例程序用于设置相机的静态ip、动态ip、临时ip。
用法:
1.设置静态ip:断电后重新上电,相机ip仍为设置值
.\ForceDeviceIP_v2.exe-static06:2F:FA:07:F8:CB192.168.6.81255.255.255.0192.168.6.12.设置动态ip:清除相机的静态ip
.\ForceDeviceIP_v2.exe-dynamic06:2F:FA:07:F8:CB或
.\ForceDeviceIP_v2.exe-dynamic06:2F:FA:07:F8:CB192.168.6.81255.255.255.0192.168.6.13.设置临时ip:设置临时的相机ip,断电重启后,相机仍以DHCP/Link-local.的方式申请ip
.\ForceDeviceIP_v2.exe-force06:2F:FA:07:F8:CB192.168.6.8255.255.255.0192.168.6.1相机用法可以参考:设置相机IP地址
3.5 GetCalibData_v2 获取相机标定参数
该示例程序用于获取相机的标定参数。
注意:只能获取相机原始的标定参数,获取到的参数不会随着分辨率切换而发生改变。
3.6 NetStatistic_v2 测试相机网络情况
该示例程序用于测试网络相机深度图像的丢包率。packetReceived:上位机共收到的数据包数量packetLost:上位机共未收到的数据包数量imageOutputed:上位机总的收到的图像数量(与数据流个数成整倍数关系)imageDropped:上位机总的未收到的图像数量
3.7 OfflineReconnection_v2 单掉线重连
该示例程序展示了图漾相机发生掉线异常后,上位机重连相机的方法。
3.8 MultiDeviceOfflineReconnection_v2 多相机掉线重连
该示例程序展示了多台图漾相机其中一台或者多台相机发生掉线异常后,上位机重连某台相机的方法。
3.9 OpenWithInterface_v2 指定网卡打开相机
该示例程序展示了通过指定网卡打开图漾相机的使用方法。
使用步骤:
1.指定序列号
.\OpenWithInterface_v2.exe-id2070001533602.指定网卡
在执行步骤1后,程序进入交互模式,通过输入键盘上的数字并以回车确认,选择所需的网卡。
下图中表示通过”wifi-c4-bd-e5-9c-ba-0db202a8c0”这个接口打开序列号为207000153360的相机。
3.10 OpenWithIP_v2 通过IP打开相机
该示例程序用于通过指定ip打开图漾网络相机的使用方法。
使用方法
.\OpenWithIP_v2.exe-ip192.168.6.87注意:192.168.6.87是相机IP地址
3.11 PointCloud_v2 保存点云
该示例程序用于保存图漾相机采集时候的点云图/Depth2Color点云。保存格式: ply,单位:m。
使用办法:
在出现提示语“Press 'c' to take a picture and 'q' to exit”后,按“c”保存或按“q”退出,文件保存路径为程序执行目录。
3.12 Registration_v2 图像对齐
该示例程序展示了图漾处理相机深度图和彩色图对齐的2种方式:D2C和C2D。
使用方法:
1.DepthToColor 深度图对齐到彩色图
#defineMAP_DEPTH_TO_COLOR1(修改代码第4行)2.ColorToDepth 彩色图对齐到深度图
#defineMAP_DEPTH_TO_COLOR0(修改代码第4行)3.13 ResolutionSetting_v2 设置图像分辨率
该示例展示了图漾SDK设置相机分辨率及其格式的方法。
使用方法:
运行程序后根据终端提示,输入要配置的RGB分辨率对应的数字编号,并按回车确认。
1.下图RGB分辨率为:YUYV 640x360
2.设置Depth分辨率
.\ResolutionSetting_v2.exe-id207000153024-width1280-height800,表示设置depth的分辨率为1280x800。注意:在该示例程序中,若不输入depth分辨率的宽和高,则不输出depth图像。
3.14 SaveLoadConfig_v2 保存和加载相机配置
该示例程序展示了将相机参数保存至custom_block.bin(相机内部存储区)和将相机参数从custom_block.bin导出至本地的方法。
3.15 SoftTrigger_v2 软触发出图
该示例程序展示了如何将相机配置在触发模式下,并实现采图的方法。
3.16 StreamAsync_v2 相机异步采图
该示例程序展示了如何配置相机数据流异步,并实现采图的方法。
3.17 ToFDepthStream_v2 TOF相机获取深度图
该示例程序展示了如何对ToF深度图像进行畸变校正的方法。
3.18 IREnhance_v2 IR图像增强
ToF相机红外图像增强示例程序。
LinearStretchProcesser:线性拉伸
func:result=(src-min(src))* 255.0 / (max(src) - min(src))
LinearStretchMultiProcesser:通过扩展比例对图像的像素值进行线性变换func:result=src*multi_expandratio
LinearStretchStdProcesser:基于标准差的线性拉伸,func:result=src255.0/(std_expandratiostd(src))
NoLinearStretchLog2Processer:基于对数变换的非线性拉伸,
func:result=log_expandratio * log2(src)
NoLinearStretchHistProcesser:基于直方图的非线性拉伸,
func:result=equalizeHist(src)
目前实测下来标准差效果较好,如下图
4.参考例程
4.1 深度图填充空洞/去噪/时域滤波例程
待补充
5.常见问题FAQ
下面主要介绍图漾官网C++版本SDK编译过程中,常遇见的问题及解决方式。