图漾相机搭配VisionPro使用简易教程
1.下载并安装VisionPro软件
请自行下载VisonPro软件。
VisionPro 9.0 /9.5/9.6版本经测试,可正常打开图漾相机,建议使用图漾测试过的版本。
2.下载PercipioCameraForVisionPro软件包
使用浏览器下载:https://gitee.com/percipioxyz/camport3_visionpro
使用 git 指令获取本地副本:打开终端,切换到需存放 SDK 的工作目录下,输入 git clone 命令克隆远程仓库。
git clone https://gitee.com/percipioxyz/camport3_visionpro.git
3.软件部署
1.将 PercipioCamera.dll、PercipioCameraExtern.dll、tycam.dll 、opencv_world460.dll拷贝到 VisionPro 的 bin 目录,如果是默认安装,路径位于 C:\ProgramFiles\Cognex\VisionPro\bin。
2.将 PercipioCameraToolBlock.vtt 拷贝到 VisonPro 工具模板目录。如果是默认安装,路径位于 C:\ProgramFiles\Cognex\VisionPro\bin\Templates\Tools。
3.进入VisionPro后,依次点击下图中的位置,调PercipioCameraToolBlock工具。

4.点击PercipioCameraToolBlock界面的“输入/输出”

PercipioCameraToolBlock的输入参数说明:
1.CameraId:需要打开的相机序列号。
2.Z:相机与投影平面在 Z 方向的距离,单位 mm,将深度图向此投影平面做正交投影。结合该距离下的相机视野和深度图分辨率,可以求出单个像素大小 (mm) ,用于后续计算。
3.ScaleUnit:配置相机的ScaleUnit,以输出不同精度的深度值。
4.RegistrationMode:RGBD对齐开关。0:不对齐;1:rgb2depth;2:depth2rgb。
4.测试流程
4.1 遍历VisionPro SDK支持的参数
以PS800-E1相机测试为主,测试项及其测试方法和结果如下表所示

4.2 设置示例
4.2.1_cameraSingle.SetTriggerMode
设置触发模式
int triggermode = (int) En_TRIGGER_MODE.TY_TRIGGER_MODE_SLAVE;
int set_trigger_mode = _cameraSingle.SetTriggerMode(ref triggermode);
if (set_trigger_mode != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("set trigger mode failed, error code: " +set_trigger_mode);
}
如果设置成软触发工作模式,还需再start capture之后添加以下代码,发送软触发信号:
if(triggermode == (int) En_TRIGGER_MODE.TY_TRIGGER_MODE_SLAVE)
{
int sendsofttrigger = _cameraSingle.sendSoftTrigger();
if(sendsofttrigger != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("send soft trigger failed, error code: " +sendsofttrigger);}
}
4.2.2 _cameraSingle.SetRegistration
设置对齐模式
_cameraSingle.SetRegistration(0);
也可以直接在PercipioCameraToolBlock页面设置输入参数RegistrationMode,无需写代码。
4.2.3_cameraSingle.SetInt
int set_exp = _cameraSingle.SetInt((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM,(int)En_FEATURE_ID.TY_INT_EXPOSURE_TIME,1088);
if(set_exp != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("set exp failed, error code: " + set_exp);
}
4.2.4 _cameraSingle.GetInt
int exp = 0;
int get_exp = _cameraSingle.GetInt((int) EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int) En_FEATURE_ID.TY_INT_EXPOSURE_TIME, ref exp);
if(get_exp != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("get exp failed, error code: " + get_exp);
}
else
{//待补充
}
4.2.5 _cameraSingle.SetBool
int set_aec = _cameraSingle.SetBool((int)EnDeviceComponent.TY_COMPONENT_RGB_CAM,(int)En_FEATURE_ID.TY_BOOL_AUTO_EXPOSURE,false );
if(set_aec != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("set aec failed, error code: " +set_aec);
}
4.2.6 _cameraSingle.GetBool
bool aec_status = true;
int get_aec = _cameraSingle.GetBool((int) EnDeviceComponent.TY_COMPONENT_RGB_CAM, (int) En_FEATURE_ID.TY_BOOL_AUTO_EXPOSURE, ref aec_status);
if(get_aec != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("get_aec failed, error code: " + get_aec);
}
4.2.7 _cameraSingle.SetEnum
int resolution = CameraSingle.ImageMode(TY_PIXEL_FORMAT_LIST.TY_PIXEL_FORMAT_DEPTH16, TY_RESOLUTION_MODE_LIST.TY_RESOLUTION_MODE_1280x960);
int set_depth_resolution = _cameraSingle.SetEnum((int) EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int) En_FEATURE_ID.TY_ENUM_IMAGE_MODE, resolution);
if(set_depth_resolution != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("set depth resolution failed, error code: " + set_depth_resolution);
}
4.2.8 _cameraSingle.GetEnum
int resolution_value = 0;
int get_depth_resolution = _cameraSingle.GetEnum((int) EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int) En_FEATURE_ID.TY_ENUM_IMAGE_MODE, ref resolution_value);
if(get_depth_resolution != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("get depth resolution failed, error code: " + get_depth_resolution);
}
4.2.9 _cameraSingle.SetFloat
int set_unit = _cameraSingle.SetFloat((int) EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int) En_FEATURE_ID.TY_FLOAT_SCALE_UNIT, 5f);
4.2.10 _cameraSingle.GetFloat
float scale_unit= 0;
int get_unit = _cameraSingle.GetFloat((int) EnDeviceComponent.TY_COMPONENT_DEPTH_CAM, (int) En_FEATURE_ID.TY_FLOAT_SCALE_UNIT, ref scale_unit);
4.2.11 _cameraSingle.SetScaleUnit
float scaleUnit = 0.25f;
int ret = _cameraSingle.SetScaleUnit(scaleUnit);
if(ret != 0)
{_cameraSingle.close();NativeMethods.deinitLib();_cameraSingle = null;throw new Exception("Set ScaleUnit Failure!");
}
可以直接在界面上输入,无需写代码。
4.2.12 _cameraSingle.GetScaleUnit
float get_scale = _cameraSingle.GetScaleUnit();
5.常见FAQ
1.每次运行只能采一张图,再次点击运行时会报错-1016。
2.使用图漾PercipioViewer软件保存的Png图片,是16位灰度图,可以使用Cog3DImageConvertTool这个Vtt文件,将16位灰度图转换成CogImage16Range,之后供VisionPro的3D工具应用。
3.图漾官网上下载的VisionPro的SDK,是旧的版本,建议使用链接上的V1.0.4版本的SDK。
4.切记使用图漾TOF相机,使用改插件,会有一些问题,有问题,请及时联系图漾技术。
相关文章:
图漾相机搭配VisionPro使用简易教程
1.下载并安装VisionPro软件 请自行下载VisonPro软件。 VisionPro 9.0 /9.5/9.6版本经测试,可正常打开图漾相机,建议使用图漾测试过的版本。 2.下载PercipioCameraForVisionPro软件包 使用浏览器下载:https://gitee.com/percipioxyz/camport…...
第一届“启航杯”网络安全挑战赛WP
misc PvzHE 去这个文件夹 有一张图片 QHCTF{300cef31-68d9-4b72-b49d-a7802da481a5} QHCTF For Year 2025 攻防世界有一样的 080714212829302316092230 对应Q 以此类推 QHCTF{FUN} 请找出拍摄地所在位置 柳城 顺丰 forensics win01 这个软件 云沙盒分析一下 md5 ad4…...
大模型训练策略与架构优化实践指南
标题:大模型训练策略与架构优化实践指南 文章信息摘要: 该分析全面探讨了大语言模型训练、架构选择、部署维护等关键环节的优化策略。在训练方面,强调了pre-training、mid-training和post-training的不同定位与目标;在架构选择上…...
新电脑安装系统找不到硬盘原因和解决方法来了
有不少网友反馈新电脑采用官方u盘方式装win10或win100出现找不到硬盘是怎么回事?后来研究半天发现是bios中开启了rst(vmd)模式。如果关闭rst模式肯定是可以安装的,但这会影响硬盘性能,有没有办法解决开启rst模式的情况安装win10或win11呢&…...
【Linux】21.基础IO(3)
文章目录 3. 动态库和静态库3.1 静态库与动态库3.2 静态库的制作和使用原理3.3 动态库的制作和使用原理3.3.1 动态库是怎么被加载的 3.4 关于地址 3. 动态库和静态库 3.1 静态库与动态库 静态库(.a):程序在编译链接的时候把库的代码链接到可…...
深度学习算法:从基础到实践
简介 深度学习作为人工智能领域的一个重要分支,近年来在多个领域取得了显著的成就。本文将从基础概念出发,探讨深度学习算法的核心原理,并介绍一些实际应用案例。 深度学习算法的核心概念 深度学习算法基于人工神经网络,通过构…...
27. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表服务
报表是每个记账应用所具备的功能,要实现报表功能就需要把账本的核心功能(记账)完成,因此报表服务作为本专栏第一部分单体应用开发中最后一个要实现的功能,这一篇文章很简单,我们一起来实现一个简单的报表服…...
coffee销售数据集分析:基于时间趋势分析的实操练习
**文章说明:**对coffee销售数据集的简单分析练习(时间趋势分析练习),主要是为了强化利用python进行数据分析的实操能力。属于个人的练习文章。 **注:**这是我第一次使用md格式编辑博客文章,排版上还是不是很…...
【转帖】eclipse-24-09版本后,怎么还原原来版本的搜索功能
【1】原贴地址:eclipse - 怎么还原原来版本的搜索功能_eclipse打开类型搜索类功能失效-CSDN博客 https://blog.csdn.net/sinat_32238399/article/details/145113105 【2】原文如下: 更新eclipse-24-09版本后之后,新的搜索功能(CT…...
Centos 修改历史读录( HISTSIZE)
history命令 -c #清空命令历史 -r #读历史文件附加到历史列表 -w #保存历史列表到指定的历史文件 命令历史相关环境变量 HISTSIZE #命令历史记录的条数 HISTFILE #指定历史文件,默认为~/.bash_history HISTFILESIZE #命令历史文件记录历史的条数 以上变量可以 exp…...
lwIP——4 网络接口
1.lwIP网络接口 网络接口(网卡):个人理解是处理网络层和数据传输关系的接口(tcp/ip协议栈中的网络接口层部分),直接与硬件平台打交道 lwIP协议栈支持多种不同的网络接口(网卡)&#…...
pytest自动化测试 - pytest夹具的基本概念
<< 返回目录 1 pytest自动化测试 - pytest夹具的基本概念 夹具可以为测试用例提供资源(测试数据)、执行预置条件、执行后置条件,夹具可以是函数、类或模块,使用pytest.fixture装饰器进行标记。 1.1 夹具的作用范围 夹具的作用范围: …...
FreeRtos的使用教程
定义: RTOS实时操作系统, (Real Time Operating System), 指的是当外界事件发生时, 能够有够快的响应速度,调度一切可利用的资源, 控制实时任务协调一致的运行。 特点: 支持多任务管理, 处理多个事件, 实现更复杂的逻辑。 与计算…...
yolov11 解读简记
1 文章详细介绍了YOLOv11的架构设计,包括以下几个关键组件: C3k2块:这是YOLOv11引入的一种新型卷积块,替代了之前版本中的C2f块。C3k2块通过使用两个较小的卷积核代替一个大的卷积核,提高了计算效率,同时保…...
实验二 数据库的附加/分离、导入/导出与备份/还原
实验二 数据库的附加/分离、导入/导出与备份/还原 一、实验目的 1、理解备份的基本概念,掌握各种备份数据库的方法。 2、掌握如何从备份中还原数据库。 3、掌握数据库中各种数据的导入/导出。 4、掌握数据库的附加与分离,理解数据库的附加与分离的作用。…...
Kafka常见问题之 `javax.management.InstanceAlreadyExistsException`
文章目录 Kafka常见问题之 javax.management.InstanceAlreadyExistsException1. 概述2. 常见原因3. 具体异常示例4. 解决方案4.1 确保单一 Kafka Producer 实例4.2 配置 Kafka Broker 和 Producer 使用唯一的 JMX 名称(对于Producer重点检查 client.id)4…...
性能测试丨JVM 性能数据采集
什么是JVM性能数据采集? JVM性能数据采集是指通过一些工具和技术采集与Java虚拟机相关的性能数据。这些数据包括但不限于内存使用、CPU使用、垃圾回收(GC)行为、线程活动等。合理地分析这些数据,可以帮助我们找出系统的瓶颈&…...
计算机图形学实验练习(实验1.2-4.1AND补充实验12)
实验1.2 OpenGL与着色器编程 1.理论知识 1.1 OpenGL的含义 OpenGL是一种应用程序编程接口(Application Programming Interface,API),它是一种可以对图形硬件设备特性进行访问的软件库。OpenGL最新的4.3版本包含了超过500个不同的命令,可以用于设置所需的对象、图像和操…...
JWT实现单点登录
文章目录 JWT实现单点登录JWT 简介存在问题及解决方案登录流程后端程序实现前端保存Tokenstore存放信息的缺点及解决 校验流程:为gateway增加登录校验拦截器 另一种单点登录方法:Token+Redis实现单点登录 JWT实现单点登录 登录流程ÿ…...
云计算的概念与特点:开启数字化时代的新篇章
在当今数字化时代,云计算(Cloud Computing)已经成为推动技术创新和业务转型的核心力量。无论是大型企业、中小型企业,还是个人用户,云计算都为其提供了高效、灵活和经济的解决方案。本文将深入探讨云计算的概念及其核心特点,帮助读者全面了解这一革命性技术。 © ivw…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
