图漾相机——Sample_V2示例程序(待补充)
文章目录
- 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
- 3.5 GetCalibData_v2
- 3.6 NetStatistic_v2
- 3.7 OfflineReconnection_v2
- 3.8 MultiDeviceOfflineReconnection_v2
- 3.9 OpenWithInterface_v2
- 3.10 OpenWithIP_v2
- 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
- 3.18 IREnhance_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=off
3.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。
用法:
1.设置静态ip:断电后重新上电,相机ip仍为设置值
.\ForceDeviceIP_v2.exe -static 06:2F:FA:07:F8:CB 192.168.6.81 255.255.255.0 192.168.6.1
2.设置动态ip:清除相机的静态ip
.\ForceDeviceIP_v2.exe -dynamic 06:2F:FA:07:F8:CB
或
.\ForceDeviceIP_v2.exe -dynamic 06:2F:FA:07:F8:CB 192.168.6.81 255.255.255.0 192.168.6.1
3.设置临时ip:设置临时的相机ip,断电重启后,相机仍以DHCP/Link-local.的方式申请ip
.\ForceDeviceIP_v2.exe -force 06:2F:FA:07:F8:CB 192.168.6.8 255.255.255.0 192.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 -id 207000153360
2.指定网卡
在执行步骤1后,程序进入交互模式,通过输入键盘上的数字并以回车确认,选择所需的网卡。
下图中表示通过” wifi-c4-bd-e5-9c-ba-0db202a8c0
”这个接口打开序列号为207000153360的相机。
3.10 OpenWithIP_v2
该示例程序用于通过指定ip打开图漾网络相机的使用方法。
使用方法
.\OpenWithIP_v2.exe -ip 192.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 深度图对齐到彩色图
#define MAP_DEPTH_TO_COLOR 1 (修改代码第4行)
2.ColorToDepth 彩色图对齐到深度图
#define MAP_DEPTH_TO_COLOR 0 (修改代码第4行)
3.13 ResolutionSetting_v2
该示例展示了图漾SDK设置相机分辨率及其格式的方法。
使用方法:
运行程序后根据终端提示,输入要配置的RGB分辨率对应的数字编号,并按回车确认。
1.下图RGB分辨率为:YUYV 640x360
2.设置Depth分辨率
.\ResolutionSetting_v2.exe -id 207000153024 -width 1280 -height 800,表示设置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深度图像进行畸变校正的方法。
3.18 IREnhance_v2
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)
目前实测下来标准差效果较好,如下图