当前位置: 首页 > news >正文

图漾相机——Sample_V1示例程序

文章目录

  • 1.SDK支持的平台类型
    • 1.1 Windows 平台
    • 1.2 Linux平台
  • 2.SDK基本知识
    • 2.1 SDK目录结构
    • 2.2 设备组件简介
    • 2.3 设备组件属性
    • 2.4 设备的帧数据管理机制
    • 2.5 SDK中的坐标系变换
  • 3.Sample_V1示例程序
    • 3.1 DeviceStorage
    • 3.2 DumpCalibInfo
    • 3.3 NetStatistic
    • 3.4 SimpleView_SaveLoadConfig
    • 3.5 SimpleView_FetchFrame
    • 3.6 SimpleView_Callback
    • 3.7 SimpleView_SGBM
  • 参考

1.SDK支持的平台类型

1.1 Windows 平台

Windows SDK 支持 X86(32位)和 X64(64位)硬件平台,并提供支持 Window7 及以上版本操作系统的驱动文件。

1.2 Linux平台

Linux SDK 支持 AArch64、ARMv7hf、RaspberryPi、i686 和 x86-64 硬件平台,并为开发者编译程序提供相应平台的库文件。

2.SDK基本知识

2.1 SDK目录结构

Include:头文件

TYApi.h:设备操作的常规接口
TYCoordinateMapper.h:坐标系变换相关接口
TYImageProc.h:畸变校正/滤波接口
TyIsp.h:RAW RGB数据的软ISP处理代码

Lib :
各类平台下的动态库文件及windows平台下sample程序
sample:
SDK中示例代码,通过CMake跨平台自动构建项目,详细功能参见在线文档:https://doc.percipio.xyz/cam/latest/getstarted/compile.html

2.2 设备组件简介

TY_DEVICE_COMPONENT_LIST(TYApi.h):

TY_COMPONENT_DEVICE:用于设置相机本身属性,例如触发属性,网口相机的IP参数等
TY_COMPONENT_DEPTH_CAM:用于设置深度相机属性,例如是能深度数据通道,设置深度数据分辨率等
TY_COMPONENT_IR_CAM_LEFT :用于设置左IR相机属性
TY_COMPONENT_IR_CAM_RIGHT:用于设置右IR相机属性
TY_COMPONENT_LASER:用于设置激光器属性,例如激光器强度,设置激光器自动控制使能等
TY_COMPONENT_RGB_CAM:用于设置RGB相机属性,例如使能RGB通道数据,设置RGB分辨率,曝光时间,增益等

2.3 设备组件属性

TY_FEATURE_ID_LIST:

1.相机的所有组件所有属性
2.并不是相机会支持这里面所有的属性,可通过API接口TYHasFeature的返回值判断是否支持。
3.属性的设置/获取可以通过API接口进行操作: TYSetBool/TYSetInt/TYSetFloat/TYSetStruct…
TYGetBool/TYGetInt/TYGetFloat/TYGetStruct…

4.部分属性参数存在一个range范围,可通过API接口TYGetIntRange/ TYGetFloatRange读取。

2.4 设备的帧数据管理机制

1.设备初始化的时候设置好使能的通道/分辨率/格式之后,可通过API接口TYGetFrameBufferSize获取Frame包大小。
2.可根据获取的Frame包尺寸分配buffer
3.调用TYEnqueueBuffer将分配的buffer加入到SDK的数据缓冲队列中。
4.调用TYFetchFrame将能从SDK缓冲队列中获取一帧数据。
5.处理完数据之后,重新调用TYEnqueueBuffer将buffer重新加入SDK缓冲队列。

在这里插入图片描述

设备的帧数据管理机制示意图

2.5 SDK中的坐标系变换

深度图的像素坐标系和空间坐标系(点云)

TYMapDepthToPoint3d/ TYMapDepthImageToPoint3d TYMapPoint3dToDepth/TYMapPoint3dToDepthImage

点云空间坐标系变换

TYMapPoint3dToPoint3d

深度图和RGB图像素坐标系变换

TYMapDepthToColorCoordinate/TYMapDepthImageToColorCoordinate
TYMapRGBImageToDepthCoordinate

3.Sample_V1示例程序

下面运行exe程序,可以通过鼠标右键+shift按键,打开powershell运行

3.1 DeviceStorage

该示例程序用于操作custom_block.bin和isp_block.bin的存储空间。
使用方法:
1.操作custom_block.bin 存储空间

1)写入文件内容:将1.txt文件中的内容写入custom_block.bin。
运行示例程序:

.\DeviceStorage.exe -id 207000151696 -b custom -i 1.txt

2)读出内存中的文件内容并输出到程序运行目录下。
运行示例程序:

.\DeviceStorage.exe -id 207000151696 -b custom -o 2.txt

注释:207000151696是相机序列号,根据实际情况更改

2.操作isp_block.bin存储空间

1)写入文件内容:将1.txt文件中的内容写入isp_block.bin 。
运行示例程序:

.\DeviceStorage.exe -id 207000151696 -b isp -i 1.txt

2)读出内存中的文件内容并输出到程序运行目录下。
运行示例程序:

.\DeviceStorage.exe -id 207000151696 -b isp -o 2.txt

3.2 DumpCalibInfo

SDK3.6.52之后版本新增示例程序,此示例程序可以将相机的标定参数以json文件的形式导出到本地。
使用方法:
1.导出原始的标定参数文件:

.\DumpCalibInfo.exe -id 相机序列号 -cs 0 -ds 0 -out_json FM855-E1-G.json

-cs 0 :表示设置RGB分辨率为列表中的第一个
-ds 0:表示设置depth分辨率为列表中的第一个
-out_json:指定输出文件的名字及路径

2.导出当前的标定参数文件:

.\DumpCalibInfo.exe -id 207000151696 -cs 1 -ds 2  -mode 0 -out_json FM855-E1-G.json

-mode 0:表示读取当前设置后的标定参数,读取到的内参会随分辨率变化,其他模式均为原始的标定参数。

3.3 NetStatistic

该示例程序用于测试网络相机图像的丢包率。
示例程序如下:

TY_CAMERA_STATISTICS st;
ASSERT_OK( TYGetStruct(hDevice, TY_COMPONENT_DEVICE, TY_STRUCT_CAM_STATISTICS, &st, sizeof(st)) );
LOGI("Statistics:");
LOGI("  packetReceived: %" PRIu64 " ", st.packetReceived);
LOGI("  packetLost    : %" PRIu64 " ", st.packetLost);
LOGI("  imageOutputed : %" PRIu64 " ", st.imageOutputed);
LOGI("  imageDropped  : %" PRIu64 " ", st.imageDropped);

packetReceived:上位机共收到的数据包数量
packetLost:上位机共未收到的数据包数量
imageOutputed:上位机总的收到的图像数量(与数据流个数成整倍数关系)
imageDropped:上位机总的未收到的图像数量

3.4 SimpleView_SaveLoadConfig

该示例程序给出了保存/导出相机配置参数的demo。

参数配置文件有自己的格式,格式错误会校验不通过,从而功能失效。
若需正确的参数配置文件,请使用PV软件导出一份。

使用方法:
1.将参数配置文件导入相机存储空间
运行示例程序:

.\SimpleView_SaveLoadConfig.exe -id 207000151696 -s FM855.json

2.将参数配置文件导出到本地程序运行目录下
运行示例程序:

.\SimpleView_SaveLoadConfig.exe -id 207000151696 -o fm855.json
  1. write_parameters_to_storage
    向DeviceStorage写入包含featrue配置的json数据
  2. load_parameters_from_storage
    从DeviceStorage读出json并解码出json然后配置到相机

常见错误反馈:

1.Error: The configuration file is too large, the maximum size should not exceed 4000 bytes:写入存储空间时,文件内容大于存储空间的大小
2.Error: The CRC check code is empty:加载参数时,存储空间没有内容
3.parameters load fail!:用write_parameters_to_storage()写入的文件内容错误,格式不匹配
4.Error: The data in the storage area has a CRC check error.:
存储空间的文件内容,不是以write_parameters_to_storage()接口写入的,在调用load_parameters_from_storage()时将返回此错误

3.5 SimpleView_FetchFrame

该示例程序用于深度相机工作在自由采集模式下连续采集图像并输出图像数据。
在这里插入图片描述

3.6 SimpleView_Callback

该示例程序用于深度相机工作在自由采集模式下连续采集图像,在独立的数据处理线程(防止堵塞图像数据获取)中进行 OpenCV 渲染,并输出图像数据。

sample/common/TYThread.cpp提供了简单的线程创建接口,通过开启线程循环fetch图像,以避免主线程的阻塞。

在这里插入图片描述

3.7 SimpleView_SGBM

SGM是一种用于计算双目视觉中视差(disparity)的半全局匹配算法,在OpenCV中的实现为semi-global block matching(SGBM)。

在这里插入图片描述

参考

1.双目立体匹配算法SGBM
https://blog.csdn.net/A_L_A_N/article/details/81490043?spm=1001.2014.3001.5506
2.双目立体匹配博客&资料汇总
https://blog.csdn.net/qq_38233873/article/details/135450586?spm=1001.2014.3001.5506

相关文章:

图漾相机——Sample_V1示例程序

文章目录 1.SDK支持的平台类型1.1 Windows 平台1.2 Linux平台 2.SDK基本知识2.1 SDK目录结构2.2 设备组件简介2.3 设备组件属性2.4 设备的帧数据管理机制2.5 SDK中的坐标系变换 3.Sample_V1示例程序3.1 DeviceStorage3.2 DumpCalibInfo3.3 NetStatistic3.4 SimpleView_SaveLoad…...

如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?

在 C# 中,using语句用于自动释放实现了IDisposable接口的对象所占用的非托管资源,如文件句柄、数据库连接、图形句柄等。其使用方式如下: 基础用法 声明并初始化资源对象:在using关键字后的括号内声明并初始化一个实现了IDisposable接口的对象。使用资源:在using语句块内…...

HTML 字符实体

HTML 字符实体 在HTML中,字符实体是一种特殊的表示方式,用于在文档中插入那些无法直接通过键盘输入的字符。字符实体在网页设计和文档编写中扮演着重要的角色,尤其是在处理特殊字符、符号和数学公式时。以下是关于HTML字符实体的详细解析。 字符实体概述 HTML字符实体是一…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_strerror_init()函数

目录 ngx_strerror_init()函数声明 ngx_int_t 类型声明定义 intptr_t 类型 ngx_strerror_init()函数实现 NGX_HAVE_STRERRORDESC_NP ngx_strerror_init()函数声明 在 nginx.c 的开头引入了: #include <ngx_core.h> 在 ngx_core.h 中引入了 #include <ngx_er…...

【c++】类与对象详解

目录 面向过程思想和面向对象思想类的定义引入类的关键字类定义的两种方式类的访问限定符类的作用域类大小的计算封装 this指针类的6个默认成员函数构造函数初步理解构造函数深入理解构造函数初始化列表单参数构造函数引发的隐式类型转换 析构函数拷贝构造函数赋值运算符重载运…...

nginx目录结构和配置文件

nginx目录结构 [rootlocalhost ~]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # POST 大文件暂存目录 ├── conf # Nginx所有配置文件的目录 │ ├── fastcgi.conf # fastcgi相关参…...

MacBook Pro(M1芯片)Qt环境配置

MacBook Pro&#xff08;M1芯片&#xff09;Qt环境配置 1、准备 试图写一个跨平台的桌面应用&#xff0c;此时想到了使用Qt&#xff0c;于是开始了搭建开发环境&#xff5e; 在M1芯片的电脑上安装&#xff0c;使用brew工具比较方便 Apple Silicon&#xff08;ARM/M1&#xf…...

Kotlin 使用 Springboot 反射执行方法并自动传参

在使用反射的时候&#xff0c;执行方法的时候在想如果Springboot 能对需要执行的反射方法的参数自动注入就好了。所以就有了下文。 知识点 获取上下文通过上下文获取 Bean通过上下文创建一个对象&#xff0c;该对象所需的参数由 Springboot 自己注入 创建参数 因为需要对反…...

网络安全技术简介

网络安全技术简介 随着信息技术的迅猛发展&#xff0c;互联网已经成为人们日常生活和工作中不可或缺的一部分。与此同时&#xff0c;网络安全问题也日益凸显&#xff0c;成为全球关注的焦点。无论是个人隐私泄露、企业数据被盗取还是国家信息安全受到威胁&#xff0c;都与网络…...

nginx 报错404

404&#xff1a;服务器无法正常解析页面&#xff0c;大多是配置问题(路径配置错误)、或访问页面不存在 如果你也是用nginx来转接服务的话&#xff0c;那你有可能碰到过这种情况&#xff0c;当你启动服务后&#xff0c;在本地打开页面&#xff0c;发现404&#xff0c;然后你找遍…...

【1.安装ubuntu22.04】

目录 参考文章链接电脑参数安装过程准备查看/更改引导方式查看/更改磁盘的分区格式关闭BitLocker加密压缩分区关闭独显直连制作Ubuntu安装盘下载镜像制作启动盘 进入BIOS模式进行设置Secure Boot引导项顺序try or install ubuntu 进入安装分区启动引导器个人信息和重启 参考文章…...

【设计模式-行为型】备忘录模式

一、什么是备忘录模式 来到备忘录模式了&#xff0c;这个模式我感觉相对简单一些&#xff0c;就是备份&#xff0c;或者快照。跟前面一样为了加深理解&#xff0c;我们引入一个电影情结来说明啥是备忘录模式&#xff0c;以来加深大家对备忘录模式的认识。那么&#xff0c;在电影…...

Linux环境下的Java项目部署技巧:安装 Mysql

查看 myslq 是否安装&#xff1a; rpm -qa|grep mysql 如果已经安装&#xff0c;可执行命令来删除软件包&#xff1a; rpm -e --nodeps 包名 下载 repo 源&#xff1a; http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 执行命令安装 rpm 源(根据下载的…...

云原生(五十三) | SQL查询操作

文章目录 SQL查询操作 一、数据库DDL操作 1、登陆数据库 2、创建DB数据库 二、数据表DDL操作 1、创建数据表 2、RDS中SQL查询操作 三、SQL查询操作 1、RDS中SQL查询操作 SQL查询操作 一、数据库DDL操作 1、登陆数据库 2、创建DB数据库 创建一个普通账号&#xff0c…...

【前端知识】常用CSS样式举例

文章目录 一、Flex盒子布局1. Flexbox 的基本概念2. Flex 容器的属性2.1 display2.2 flex-direction2.3 flex-wrap2.4 justify-content2.5 align-items2.6 align-content 3. Flex 项目的属性3.1 order3.2 flex-grow3.3 flex-shrink3.4 flex-basis3.5 flex3.6 align-self 4. 示例…...

硕成C语言1笔记

硕成C语言1笔记 这一节内容主要讲了进制转换 进制转换&#xff1a;十进制转其他进制用短除法&#xff0c;最后逆序输出十六进制的15表示的是F&#xff0c;255的十六进制是&#xff1a;FF其他进制转十进制&#xff1a;按权展开&#xff0c;从n的0次方开始&#xff0c;一直到最…...

[SAP ABAP] Debug Skill

SAP ABAP Debug相关资料 [SAP ABAP] DEBUG ABAP程序中的循环语句 [SAP ABAP] 静态断点的使用 [SAP ABAP] 在ABAP Debugger调试器中设置断点 [SAP ABAP] SE11 / SE16N 修改标准表(慎用)...

理解 InnoDB 如何处理崩溃恢复

在数据库领域&#xff0c;数据的一致性与可靠性至关重要。InnoDB 存储引擎的崩溃恢复机制是保障数据安全的核心&#xff0c;其中 Doublewrite Buffer 和 Redo Log 发挥着关键作用。下面&#xff0c;我们将详细探讨 InnoDB 从写入到崩溃恢复的全过程。 一、写入流程 修改页面&…...

UE5 蓝图学习计划 - Day 8:触发器与交互事件

在游戏开发中&#xff0c;触发器&#xff08;Trigger&#xff09; 和 交互事件&#xff08;Interaction Events&#xff09; 是实现游戏动态交互的关键。例如&#xff0c;当角色接近一扇门时&#xff0c;它可以自动打开&#xff0c;或者当玩家进入特定区域时&#xff0c;游戏触…...

根据接口规范封装网络请求和全局状态管理

封装通用页面接口网络请求 axios &#xff08;request&#xff09;封装见&#xff1a;https://blog.csdn.net/XiugongHao/article/details/143449863 /*** 封装通用页面的增删改查接口*/ export function postPageListData(pageName: string, queryInfo: any) {return request.…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...