图漾相机——Sample_V2示例程序(待补充)

文章目录

  • 1.SDK支持的平台类型
    • [1.1 Windows 平台](#1.1 Windows 平台)
    • [1.2 Linux平台](#1.2 Linux平台)
  • 2.Sample_V2编译流程
    • [2.1 Windows环境](#2.1 Windows环境)
    • [2.2 Linux环境编译](#2.2 Linux环境编译)
  • 3.Sample_V2示例程序测试
    • [3.1 ListDevice_v2](#3.1 ListDevice_v2)
    • [3.2 DepthStream_v2](#3.2 DepthStream_v2)
    • [3.3 ExposureTimeSetting_v2](#3.3 ExposureTimeSetting_v2)
    • [3.4 ForceDeviceIP_v2](#3.4 ForceDeviceIP_v2)
    • [3.5 GetCalibData_v2](#3.5 GetCalibData_v2)
    • [3.6 NetStatistic_v2](#3.6 NetStatistic_v2)
    • [3.7 OfflineReconnection_v2](#3.7 OfflineReconnection_v2)
    • [3.8 MultiDeviceOfflineReconnection_v2](#3.8 MultiDeviceOfflineReconnection_v2)
    • [3.9 OpenWithInterface_v2](#3.9 OpenWithInterface_v2)
    • [3.10 OpenWithIP_v2](#3.10 OpenWithIP_v2)
    • [3.11 PointCloud_v2](#3.11 PointCloud_v2)
    • [3.12 Registration_v2](#3.12 Registration_v2)
    • [3.13 ResolutionSetting_v2](#3.13 ResolutionSetting_v2)
    • [3.14 SaveLoadConfig_v2](#3.14 SaveLoadConfig_v2)
    • [3.15 SoftTrigger_v2](#3.15 SoftTrigger_v2)
    • [3.16 StreamAsync_v2](#3.16 StreamAsync_v2)
    • [3.17 ToFDepthStream_v2](#3.17 ToFDepthStream_v2)
    • [3.18 IREnhance_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环境下,编译步骤如下:

cpp 复制代码
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增加如下参数:

cpp 复制代码
cmake .. -DBUILD_SAMPLES=off

在sample_v2基础上关闭对opencv依赖,则cmake增加如下:

cpp 复制代码
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仍为设置值

cpp 复制代码
.\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

cpp 复制代码
.\ForceDeviceIP_v2.exe -dynamic 06:2F:FA:07:F8:CB

cpp 复制代码
.\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

cpp 复制代码
.\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.指定序列号

cpp 复制代码
.\OpenWithInterface_v2.exe -id 207000153360

2.指定网卡

在执行步骤1后,程序进入交互模式,通过输入键盘上的数字并以回车确认,选择所需的网卡。

下图中表示通过" wifi-c4-bd-e5-9c-ba-0db202a8c0"这个接口打开序列号为207000153360的相机。

3.10 OpenWithIP_v2

该示例程序用于通过指定ip打开图漾网络相机的使用方法。

使用方法

cpp 复制代码
.\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 深度图对齐到彩色图

cpp 复制代码
#define MAP_DEPTH_TO_COLOR  1   (修改代码第4行)

2.ColorToDepth 彩色图对齐到深度图

cpp 复制代码
#define MAP_DEPTH_TO_COLOR  0   (修改代码第4行)

3.13 ResolutionSetting_v2

该示例展示了图漾SDK设置相机分辨率及其格式的方法。

使用方法:

运行程序后根据终端提示,输入要配置的RGB分辨率对应的数字编号,并按回车确认。

1.下图RGB分辨率为:YUYV 640x360

2.设置Depth分辨率

cpp 复制代码
.\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)

目前实测下来标准差效果较好,如下图

相关推荐
哈__2 小时前
CANN加速3D目标检测推理:点云处理与特征金字塔优化
目标检测·3d·目标跟踪
心疼你的一切8 小时前
三维创世:CANN加速的实时3D内容生成
数据仓库·深度学习·3d·aigc·cann
3DVisionary17 小时前
掌控发动机“心脏”精度:蓝光3D扫描在凸轮轴全尺寸检测中的应用
3d·图形渲染·汽车发动机·精密测量·蓝光3d扫描·凸轮轴检测·形位公差
coder攻城狮1 天前
VTK系列1:在屏幕绘制多边形
c++·3d
PHOSKEY1 天前
3D工业相机如何“读透”每一个字符?快速识别、高精度3D测量
数码相机·3d
XX風1 天前
7.2 harris 3d
3d
多恩Stone1 天前
【3D-AICG 系列-3】Trellis 2 的O-voxel (下) Material: Volumetric Surface Attributes
人工智能·3d·aigc
多恩Stone1 天前
【3D-AICG 系列-1】Trellis v1 和 Trellis v2 的区别和改进
人工智能·pytorch·python·算法·3d·aigc
三年模拟五年烧烤1 天前
easy-threesdk快速一键搭建threejs3d可视化场景
3d·threejs
top_designer1 天前
Materialize:手绘地表太假?“PBR 纹理炼金术” 5分钟生成次世代材质
游戏·3d·aigc·材质·设计师·游戏美术·pbr