文章目录
1.FM855-E1相机

1.1 FM855-E1工作场景
适用材质:复杂场景下的栈板识别,比如室内有阳光斜射,有天窗,高反材质,黑色托盘等等。
特点:波段940nm,抗光性较强。
当前客户典型应用:
1.复杂场景下的栈板识别,比如需要抗阳光,抗高反,黑色托盘等;
2.大件拼接体积测量;
通过获取单帧散斑结构光纹理进行深度计算;相比于FM815-E1,产品具有较高的帧率,相比于FM851-E2,产品具有一定的抗阳光能力,适用于一些半户外或者动态场景的应用,比如识别,分类,定位等;
1.2 FM855-E1 IO线和数据线定义
1.2.1 IO接口定义



1.2.2 数据接口线
FM855-E1相机,网路数据线如下图所示:

如果相机在动态场景中使用,建议使用高柔线,非高柔线容易引发掉线问题。
1.2.3 M12 X-Code转RJ45网线说明
RJ45端符合EIA/TIA 568B标准,线缆说明如下图所示。

如想详细了解EIA/TIA 568A与B网线标准的区别,请查看如下链接:网线色标编码标准
1.2.4 FM855-E1相机连接拓扑网络
FM855-E1相机拓扑网络如下图:


1.2.5 FM855-E1相机正面安装方向
FM855-E1相机正面安装方向如下:

从左到右依次是右IR镜头,散斑投射器,RGB相机,左IR镜头。
1.2.6 上下面螺纹孔安装
FM855-E1相机上下面有一组M3螺纹孔(螺纹深度5mm)
1.2.7 相机IO指示灯
FM855-E1相机状态指示灯如下图所示:

1.3 FM855-E1相机性能指标
FM855-E1相机的性能指标如下:



1.4 规格指标

1.5 相机产品比较

2.FM855-E1相机调参技巧
1.FM855-E1相机,仍建议使用官网PercipioViewer软件打开相机。
2.1 下载看图软件连接相机
1.FM855-E1相机,建议搭配图漾官网PercipioViewer看图软件使用,看图软件下载链接:图漾PercipioViewer软件下载链接

2.PercipioViewer看图软件详细操作,可查看此链接:图漾官网PercipioViewer软件操作手册
2.2 图漾PercipioViewer软件更改相机IP
详细更改相机的IP操作,可打开链接:
PercipioViewer软件更改相机IP
2.3 深度图调参
2.3.1 相机的IR参数
PercipioViewer软件参数设置:

注:关闭Light Source模块下的auto ctrl属性,这个时候,打开相机的左右IR取流,才能看到散斑图。
个人推荐的参数配置:

2.3.2 相机的Depth参数
PercipioViewer软件参数设置:

个人推荐的参数配置:

| 相机组件 | 属性名称 | 属性 | 相机默认参数 | 推荐参数 | 默认范围 |
|---|---|---|---|---|---|
| Range深度图 | 深度图中像素值的单位 | TY_FLOAT_SCALE_UNIT | 1 | 0.0125~8 | |
| 调整工作范围 | 视差搜索范围 | TY_INT_SGBM_DISPARITY_NUM | 160 | 1 - 320 | |
| 开始搜索的视差值 | TY_INT_SGBM_DISPARITY_OFFSET | 16 | -43 | 负1280至1280 | |
| 视差匹配窗口的高 | TY_INT_SGBM_MATCH_WIN_HEIGHT | 15 | 1-19奇数 | ||
| 视差匹配窗口的宽 | TY_INT_SGBM_MATCH_WIN_WIDTH | 15 | 1-17 奇数 | ||
| 用于深度计算的 IR 图像数量 | TY_INT_SGBM_IMAGE_NUM | 1 | 1 | ||
| 周围像素约束惩罚参数 P2 | TY_INT_SGBM_SEMI_PARAM_P2 | 400 | 450 | 0-65535 | |
| 误匹配相关 | 最优匹配点与次优匹配点的百分比 | TY_INT_SGBM_UNIQUE_FACTOR | 60 | 0-511 | |
| 最优匹配点与次优匹配点差值的绝对值 | TY_INT_SGBM_UNIQUE_ABSDIFF | 400 | 0-65535 | ||
| 搜索滤波开关 | TY_BOOL_SGBM_HFILTER_HALF_WIN | 1 | true/false | ||
| 中值滤波开关 | TY_BOOL_SGBM_MEDFILTER | 1 | true/false | ||
| 中值滤波设置数值 | TY_INT_SGBM_MEDFILTER_THRESH | 100 | 1-511 | ||
| 左右一致性检查开关 | TY_BOOL_SGBM_LRC | TRUE | true/false | ||
| 左右一致性设置数值 | TY_INT_SGBM_LRC_DIFF | 8 | 1-4095 | ||
| 纹理滤波阈值 | TY_INT_SGBM_TEXTURE_THRESH | 0 | 0-65535 | ||
| 纹理滤波偏移值 | TY_INT_SGBM_TEXTURE_OFFSET | 只读 | 只读 |
同时建议开启滤波设置,不然会有很多误匹配的点。

2.3.3 FS/PM带SGBM参数相机调参说明
诸如FM855-E1,FM815-IX-E1,PS800,PS802等带有SGBM参数的相机,需要进行如下操作,才能打开SGBM参数:

相机参数说明连接
而SGBM参数主要作用如下:

2.3.3.1 disparityNum和disparityOffset参数调整技巧
disparityNum:视差范围。
disparityOffset:最小视差值。
使用场景:
客户想要更改预定义的深度范围(近远端值)。
调整方向:
深度范围减小, disparityNum大概率减小。
深度范围远端往相机端缩进, disparityOffset变大,反之亦反。
而disparityNum和disparityOffset参数设置,计算公式如下:
disparityNum = (baseline* fx) / depth_thres.first - (baseline* fx) / depth_thres.second + 15;
disparityOffset = ((baseline * fx) / (depth_thres.second)) - DISPARITY_TRANSLATION;
计算公式里的每个参数的具体含义如下:
| 参数名 | 输入/输出 | 参数解释 |
|---|---|---|
| baseline | 100 | 相机基线,例如62,100,300,450等 |
| fx | 1069.77 | depth内参fx,可通过相机config读出 |
| depth_thres.first | 500 | 需要成像的最近距离,单位mm |
| depth_thres.second | 2000 | 需要成像的最远距离,单位mm |
| DISPARITY_TRANSLATION | 0 | 常见为0或64,取决于左右IR是否有夹角 |
disparityNum | 175.4655 | |
disparityOffset | 53.4885 |
完整的计算表格从本帖子置顶位置下载。
2.3.3.2 matchWinW和matchWinH参数调整技巧
matchWinW:匹配块横向大小
matchWinH:匹配块纵向大小
使用场景:
针对被测物要测量的特征(针对的是平滑面,还是物体细节),进行细微的调整。
调整方向:
一般的预设置的匹配块大小可认为是一个全局考虑的值;深度图越需要平滑的,匹配块大概率是从预设值向大调整,反之,亦反。
注意事项:请首先按照 matchWinW = matchWinH 的方式进行调整;
一般匹配块大小必须是奇数且大于等于3;
2.3.3.3 P1和P2参数调整技巧
P1:控制视差平滑度的第一个参数。[已取消该设置]
P1scale:控制视差平滑度的尺度参数。[已取消该设置]
P2:控制视差平滑度的第二个参数。
使用场景: 需要调整深度图平滑度的情况。
调整方向 P1越大,越倾向于生成连续的视差图。 P1scale作用在平滑度上,P1sacle范围是[0~1],越大就越平滑。 P2越大,越倾向于消除小的视差变化。P2必须大于P1。
注意事项:建议先调整P1sacle,后P1,再P2。
2.3.3.4 uniqueFator和uniqueAbsDiff参数调整技巧
uniqueFator:唯一性检查阈值,最优与次优的比值约束。
uniqueAbsDiff:唯一性检查阈值,绝对值差阈值。
使用场景:被测物有杂点、飞点、空洞过多等情况。
调整方向:后处理约束参数调整过小会产生杂点或飞点;过大则会产生大片空洞。 一般uniqueAbsDiff 比 uniqueFator约束性更强。
2.3.4 相机的RGB参数
PercipioViewer软件参数设置:

个人推荐的参数配置:

1.主要是将自动曝光目标亮度设置在3500左右。
2.如果是在色温较大的工作场景,建议把RgbAWB自动白平衡关掉。
3.每个参数的作用,可参看链接:相机参数作用
2.4 深度图评估
2.4.1 评估点云
打开深度取图开关,打开下图如下位置:

个人建议参考上图中的1和3,2的数值会收到ROI大小和ROI是否平整等因素有关,会波动较大。
2.4.2 填充空洞

2.4.3 滤波功能

2.4.4 时域滤波功能

2.4.5 中值滤波

2.4.6 调节深度图渲染效果
个人推荐使用Turto渲染功能,该功能类似Opencv中的colorformap函数。

2.5 保存图像
详细操作和图像格式,可打开链接:图漾看图软件保存图片
2.5.1 单张存图

具体操作步骤如下:

2.5.2 连续存图
Percipio Viewer 可以按照预设帧数连续保存图像(深度图、彩色图、左右灰度图、深度图映射至彩色图的对齐图、彩色图映射至深度图的对齐图、点云图、深度与彩色对齐后生成的点云图)。

保存的格式,具体说明如下:连续保存图片
2.6 相机保存参数配置
保存相机参数进相机storage区域,具体操作流程如下图:
图漾相机保存参数配置


2.6.1 保存参数限制
只能保存每个组件control下的属性,其他的参数无法保存进相机里。

2.6.2 保存参数注意事项
1.在打开相机取流的时候,无法进行参数保存,需要关闭相机取流后,再进行保存参数。
2.无法保存相机Device组件里的触发属性,。

3.无法保存深度图和点云图的质量评估及后处理功能。

4.无法保存Color组件的校正畸变,以及AutoISP功能。

5.相机系统层的属性无法保存,如对时设置,接收包比例,图像重传等功能。
3.FM855-E1相机SDK相关
FM855-E1相机,推荐使用的编程语言和SDK版本如下:
3.1 TYCamera之C++语言SDK(推荐)
FM855-E1相机,既可以使用官网3.X.X版本的SDK,也可以使用4.X.X版本的SDK。
具体操作和Sample和案例,可打开如下链接:
1.图漾相机3.X.X版本C++语言SDK
2.图漾相机4.X.X版本C++语言SDK
3.图漾官网C++语言教程
官网修改后的C++语言SDK,可参考链接:官网修改后的C++语言的SDK
1.如果只是单纯使用FM855-E1相机,或者其他旧的相机,没有使用GM46X和PMD相机,建议使用3.6.66版本SDK。
2.如果同时使用FM855-E1和GM46X新相机,个人仍建议使用4.X.X版本中的Sample_V1例子。
3.2 TYCamera之ROS1版本(推荐)
FM855-E1相机,既可以使用官网3.X.X版本的SDK,也可以使用4.X.X版本的SDK。
具体操作和Sample和案例,可打开如下链接:
1.图漾相机-ROS1_SDK_ubuntu_3.X.X版本编译
2.图漾相机-ROS1_SDK_ubuntu 4.X.X版本编译
3.图漾官网ROS1教程
1.如果只是单纯使用FM855-E1相机,或者其他旧的相机,没有使用GM46X和PMD相机,建议使用3.6.66版本SDK。
2.如果同时使用FM855-E1和GM46X新相机,建议使用4.1.18及其以上版本SDK。
3.3 TYCamera之ROS2版本(推荐)
FM855-E1相机,既可以使用官网3.X.X版本的SDK,也可以使用4.X.X版本的SDK。
具体操作和Sample和案例,可打开如下链接:
1.图漾相机-ROS2-SDK-Ubuntu 3.X.X版本编译
2.图漾相机-ROS2-SDK-Ubuntu 4.X.X版本编译
3.图漾官网ROS2教程
1.如果只是单纯使用FM855-E1相机,或者其他旧的相机,没有使用GM46X和PMD相机,建议使用3.6.66版本SDK。
2.如果同时使用FM855-E1和GM46X新相机,建议使用4.1.18及其以上版本SDK。
3.4 TYCamera之C#语言SDK
1.目前只建议使用3.X.X版本
建议参考以下链接
1.图漾相机——C#语言 3.X.X版本属性设置
2.图漾官网3.X.X版本C#语言属性设置
如果涉及到和GM46X和PMD相机混用的情况,建议联系图漾技术获取最新的SDK和说明手册。
VCamera的详细操作可打开链接:VCamera 使用指南(C#)
3.5 TYCamera之Python语言SDK
1.目前只建议使用3.X.X版本
建议参考以下链接:
1.图漾相机——Python 3.X.X版本属性设置
2.图漾官网3.X.X版本Python语言属性设置
如果涉及到和GM46X和PMD相机混用的情况,建议联系图漾技术获取最新的SDK和说明手册。
VCamera的详细操作可打开链接:VCamera 使用指南(Python)
3.6 Halcon语言SDK
建议参考以下链接:
1.图漾Halcon版本SDK使用教程【V1.1.X新版本】
3.7 VisionPro语言SDK
建议参考以下链接:
1.图漾相机搭配VisionPro使用简易教程
如果使用VisionPro调用TOF相机,,请更新官网最新版本的驱动。
4.FM855-E1相机常见FAQ
4.1 如何获取FM855-E1相机内参?
4.1.1 方法一 运行DumpCalibInfo
SDK3.6.52之后版本,新增示例程序,此示例程序可以将相机的标定参数以json文件的形式导出到本地。
编译C++语言中的例子,之后运行Sample_V1文件夹中的DumpCalibInfo例子,会生成一个json文件,里面记录FM855–E1相机的内外参信息。

生成的json文件如下图:
{
"sn": "207000152898",
"timestamp": "2025-12-22 15:26:10",
"depth_calib_info" : {
"intri": [
1038.711182,
0.000000,
661.240784,
0.000000,
1038.711182,
473.852783,
0.000000,
0.000000,
1.000000
],
"image_width": 1280,
"image_height": 960,
"scale_unit": 1.000000
},
"color_calib_info" : {
"intri": [
1854.750610,
0.000000,
1283.600952,
0.000000,
1854.823242,
936.768982,
0.000000,
0.000000,
1.000000
],
"extri": [
0.999992,
0.003131,
-0.002648,
24.949505,
-0.003122,
0.999990,
0.003352,
-0.082591,
0.002658,
-0.003344,
0.999991,
-0.044184,
0.000000,
0.000000,
0.000000,
1.000000,
0.247844
],
"distortion": [
0.247844,
0.422229,
0.000910,
-0.000698,
0.189628,
0.511626,
0.388798,
0.323837,
0.001284,
-0.000207,
-0.002286,
0.000561
],
"image_width": 2560,
"image_height": 1920
}
}
4.1.2 方法二 运行DumpAllFeature例子
图漾C++语言SDK下载链接
使用官网如下路径下的x64压缩包,通过鼠标右键+shift键,进入到PowerShell界面,运行DumpAllFeatures例子,生成对应内容:

4.1.3 通过PV软件
具体方法如下:


获取的fetch_config.xml中的文件内容如下:
<?xml version="1.0" ?>
<config version="1">
<comprotocol>1.0</comprotocol>
<component id="0x80000000" addr="0x01000000" name="device">
<feature id="0x5f00" name="SN" rw="1">207000144919</feature>
<feature id="0x5f01" name="vendor" rw="1">Percipio</feature>
<feature id="0x5f02" name="model" rw="1">FM855-E1</feature>
<feature id="0x5f08" name="user defined name" rw="1">Percipio</feature>
<feature id="0x1202" addr="0x204" name="frame per trigger" rw="3">1</feature>
<feature id="0x7523" addr="0x208" name="struct trigger mode" rw="3"/>
<feature id="0x7525" addr="0x218" name="struct trigger mode ex" rw="3"/>
<feature id="0x1010" absaddr="0x64c" name="persistent IP" rw="3"/>
<feature id="0x1011" absaddr="0x65c" name="persistent netmask" rw="3"/>
<feature id="0x1012" absaddr="0x66c" name="persistent gateway" rw="3"/>
<feature id="0x1014" addr="0x400020" name="packet delay" rw="3" min="0" max="10000" inc="1"/>
<feature id="0x1017" addr="0x40002c" name="packet size" rw="3" min="100" max="1500" inc="1"/>
<feature id="0x1016" addr="0x400024" name="ntp server ip" rw="3"/>
<feature id="0x4207" addr="0x214" name="trigger out io" rw="2" writableAtRun="1"/>
<feature id="0x4205" addr="0x20c" name="cmos sync" rw="3"/>
<feature id="0x4203" name="keep alive onoff" rw="3"/>
<feature id="0x1204" name="keep alive timeout" rw="3" min="2000" inc="1" max="30000"/>
<feature id="0x1206" addr="0x210" name="trigger delay us" rw="3" min="0" max="1300000" inc="1"/>
<feature id="0x1208" addr="0x21C" name="trigger duration us" rw="3" min="1" max="1300000" inc="1"/>
<feature id="0x3209" addr="0x220" name="stream async" rw="3">
<entry name="async off" value="0"/>
<entry name="async depth" value="1"/>
<entry name="async rgb" value="2"/>
<entry name="async depth rgb" value="3"/>
<entry name="async all" value="255"/>
</feature>
<feature id="0x3201" addr="0x200" name="trig pol" rw="3">
<entry name="falling edge" value="0"/>
<entry name="rising edge" value="1"/>
</feature>
<feature id="0x1210" addr="0x228" name="capture time us" rw="1" volatile="1"/>
<feature id="0x3211" addr="0x22c" name="sync type" rw="3" volatile="1">
<entry name="sync type none" value="0"/>
<entry name="sync type host" value="1"/>
<entry name="sync type ntp" value="2"/>
<entry name="sync type ptp slave" value="3"/>
<entry name="sync type can" value="4"/>
<entry name="sync type ptp master" value="5"/>
</feature>
<feature id="0x4212" addr="0x230" name="sync ready" rw="1" volatile="1"/>
<feature id="0x7216" addr="0x268" name="struct DI0 workmode" rw="3" volatile="1"/>
<feature id="0x4213" addr="0x23c" name="flash light enable" rw="3" volatile="1" writableAtRun="1"/>
<feature id="0x1214" addr="0x240" name="flash light intensity" rw="3" min="0" max="63" inc="1" volatile="1" writableAtRun="1"/>
<intpf>AWQAUAA=</intpf>
<feature id="0x5fe0" name="device extrinsic" rw="1">0.9999999999999999 -2.1894390259468748e-20 1.048771394937079e-18 0.0 -4.4305557072085296e-20 1.0 -1.7419553150136537e-19 0.0 8.146006362862501e-19 6.071076960992772e-19 1.0 8.326672684688674e-17 0.0 0.0 0.0 1.0</feature>
<feature id="0x5f03" name="hardware version" rw="1" hide="0">1.3.0</feature>
<feature id="0x5f04" name="firmware version" rw="1" hide="0">3.13.77</feature>
<build>
<hash>model:AP04B05-001AM85X_X_X7_F121_DVP;rtl:R0.0.9_0_gfa09cb487d;kernel:R3.13.77-0-gc484756878;tycam:R3.6.49-86ae766a;gevcam:R3.13.77-0-gd613cccf</hash>
</build>
<config_version>r3.14.0-98e107aed31beca07d70659cfb32057aad38e691
Mon Nov 13 03:21:11 UTC 2023</config_version>
<tech_model>AS850-GT6-410-CB0S0</tech_model>
<generated_time>2023-11-22T140126</generated_time>
<calibration_time>2023-11-22T134233</calibration_time>
</component>
<component id="0x00010000" addr="0x02000000" name="depth">
<feature id="0x210a" addr="0x63c" name="scale unit" rw="3" hide="0" min="0.0125" max="8.0" writableAtRun="1">1.0</feature>
<feature id="0x1003" name="intrinsic width" rw="1" hide="1">1280</feature>
<feature id="0x1004" name="intrinsic height" rw="1" hide="1">960</feature>
<feature id="0x7000" name="depth intrinsic" rw="1" hide="0">1055.6165850642942 0.0 648.4675941467285 0.0 1055.6165850642942 511.1427707672119 0.0 0.0 1.0</feature>
<feature id="0x1104" addr="0x10" name="image width" rw="1" hide="0"/>
<feature id="0x1105" addr="0x14" name="image height" rw="1" hide="0"/>
<feature id="0x3109" addr="0x18" name="image mode" rw="3" hide="0">
<entry value="0x202801e0" name="DEPTH16_640x480"/>
<entry value="0x205003c0" name="DEPTH16_1280x960"/>
<entry value="0x201400f0" name="DEPTH16_320x240"/>
</feature>
<feature id="0x1610" addr="0x600" name="image number" rw="3" hide="1" min="1" max="1">1</feature>
<feature id="0x1611" addr="0x604" name="disparity num" rw="3" hide="1" min="1" max="320" writableAtRun="1">160</feature>
<feature id="0x1612" addr="0x608" name="disparity offset" rw="3" hide="1" min="-1280" max="1280" writableAtRun="1">16</feature>
<feature id="0x1613" addr="0x60c" name="match window height" rw="3" hide="1" min="1" inc="2" max="19" writableAtRun="1">15</feature>
<feature id="0x1614" addr="0x610" name="semi global param p1" rw="3" hide="1" min="0" max="10000" writableAtRun="1" available="0">200</feature>
<feature id="0x161f" addr="0x640" name="semi global param p1 scale" rw="3" hide="1" min="0" max="25" writableAtRun="1" available="0">15</feature>
<feature id="0x1615" addr="0x614" name="semi global param p2" rw="3" hide="1" min="0" max="10000" writableAtRun="1">400</feature>
<feature id="0x1616" addr="0x618" name="uniqueness factor param" rw="3" hide="1" min="0" max="511" writableAtRun="1">60</feature>
<feature id="0x1617" addr="0x61c" name="uniqueness min absolute diff" rw="3" hide="1" min="0" max="10000" writableAtRun="1">400</feature>
<feature id="0x4619" addr="0x624" name="enable half window size" rw="3" hide="1" writableAtRun="1">true</feature>
<feature id="0x161a" addr="0x628" name="match window width" rw="3" hide="1" min="1" inc="2" max="17" writableAtRun="1">15</feature>
<feature id="0x461b" addr="0x62C" name="enable median filter" rw="3" hide="1" writableAtRun="1">1</feature>
<feature id="0x461c" addr="0x630" name="enable LRC" rw="3" hide="1" writableAtRun="1">true</feature>
<feature id="0x161d" addr="0x634" name="max LRC diff" rw="3" hide="1" min="1" max="4095" writableAtRun="1">8</feature>
<feature id="0x161e" addr="0x638" name="median filter thresh" rw="3" hide="1" min="1" max="511" writableAtRun="1">100</feature>
</component>
<component id="0x00040000" addr="0x03000000" name="leftir">
<feature id="0x3109" addr="0x18" name="image mode" rw="1">
<entry value="0x105003c0" name="mono8 1280x960"/>
</feature>
<feature id="0x1104" addr="0x10" name="image width" rw="1">1280</feature>
<feature id="0x1105" addr="0x14" name="image height" rw="1">960</feature>
<feature id="0x1003" name="intrinsic width" rw="1">1280</feature>
<feature id="0x1004" name="intrinsic height" rw="1">960</feature>
<feature id="0x7000" name="intrinsic" rw="1">1104.5226895779542 0.0 653.9212902050149 0.0 1104.4849581285523 512.6613948964257 0.0 0.0 1.0</feature>
<feature id="0x7006" name="distortion" rw="1">-0.40452408480146795 0.3155020120267352 -0.002318719836013125 0.0012867047016921465 0.24269827671170519 -0.13465522198931576 0.10288224012522049 0.41694258454851446 -0.002444766680069397 0.0004346660239811876 0.0049228293860162555 -0.0009998836752821692</feature>
<feature id="0x7008" name="rectified intrinsic" rw="1">1055.6165850642942 0.0 648.4675941467285 0.0 1055.6165850642942 511.1427707672119 0.0 0.0 1.0</feature>
<feature id="0x4510" addr="0x324" name="undistort" rw="3"/>
<feature id="0x1301" addr="0x304" name="exposure time" rw="3" min="3" max="1774" inc="1" writableAtRun="1"/>
<feature id="0x1303" addr="0x310" name="gain" rw="3" min="0" max="255" inc="1" writableAtRun="1"/>
<feature id="0x1524" addr="0x328" name="analog gain" rw="3" min="0" max="3" inc="1" writableAtRun="1"/>
</component>
<component id="0x00080000" addr="0x04000000" name="rightir">
<feature id="0x3109" addr="0x18" name="image mode" rw="1">
<entry value="0x105003c0" name="mono8 1280x960"/>
</feature>
<feature id="0x1104" addr="0x10" name="image width" rw="1">1280</feature>
<feature id="0x1105" addr="0x14" name="image height" rw="1">960</feature>
<feature id="0x1003" name="intrinsic width" rw="1">1280</feature>
<feature id="0x1004" name="intrinsic height" rw="1">960</feature>
<feature id="0x7000" name="intrinsic" rw="1">1105.180222504481 0.0 635.9795510924432 0.0 1105.2512488022203 521.3211402485035 0.0 0.0 1.0</feature>
<feature id="0x7006" name="distortion" rw="1">-0.40290627981060245 -0.049497097588038184 0.005930763996641172 -0.0032238557844577838 0.17168410536613027 -0.133855217125926 -0.26430781281390764 0.25959297257898967 0.006503489712587607 -0.0009746040633357764 -0.013254947411669493 0.0028928683761796207</feature>
<feature id="0x7008" name="rectified intrinsic" rw="1">1055.6165850642942 0.0 648.4675941467285 0.0 1055.6165850642942 511.1427707672119 0.0 0.0 1.0</feature>
<feature id="0x7001" name="rightIR to leftIR extrinsic" rw="1"> 0.9997916274201418 -0.003916105253625753 0.020034117405732393 -100.02898244238013 0.0046810315088797174 0.9992561688303683 -0.03827789177145711 -0.2569660590626839 -0.019869315151686023 0.03836369604322599 0.9990662826566145 1.4673361148865882 0.0 0.0 0.0 1.0</feature>
<feature bind="0x00044510"/>
<feature id="0x1301" addr="0x304" name="exposure time" rw="3" min="3" max="1774" inc="1" writableAtRun="1"/>
<feature id="0x1303" addr="0x310" name="gain" rw="3" min="0" max="255" inc="1" writableAtRun="1"/>
<feature id="0x1524" addr="0x328" name="analog gain" rw="3" min="0" max="3" inc="1" writableAtRun="1"/>
</component>
<component id="0x00100000" addr="0x05000000" name="rgb">
<feature id="0x3109" addr="0x18" name="RgbImageMode" rw="3">
<entry value="0x22a00780" name="yuyv 2560x1920"/>
<entry value="0x227805a0" name="yuyv 1920x1440"/>
<entry value="0x225003c0" name="yuyv 1280x960"/>
<entry value="0x222801e0" name="yuyv 640x480"/>
<entry value="0x63a00780" name="CSI BAYER12GR_2560x1920"/>
</feature>
<feature id="0x7305" addr="0x224" name="struct aec roi" rw="3" writableAtRun="1" volatile="1">
<pIsAvailable>RgbROIEnabled</pIsAvailable>
<pInvalidator>RgbImageMode</pInvalidator>
</feature>
<feature id="0x4300" addr="0x300" name="RgbAutoExpo" rw="3" writableAtRun="1">
<pIsAvailable>ImageFormatIsYUV</pIsAvailable>
<pInvalidator>RgbImageMode</pInvalidator>
</feature>
<feature addr="0x304" id="0x1301" inc="1" max="66600" min="0" name="exposure time" rw="3" writableAtRun="1">
<pInvalidator>RgbImageMode</pInvalidator>
<pInvalidator>RgbAutoExpo</pInvalidator>
</feature>
<feature id="0x4304" addr="0x314" name="RgbAWB" rw="3" writableAtRun="1">
<pIsAvailable>ImageFormatIsYUV</pIsAvailable>
<pInvalidator>RgbImageMode</pInvalidator>
</feature>
<feature addr="0x328" id="0x1524" inc="1" max="65535" min="1" name="analog gain" rw="3" writableAtRun="1">
<pInvalidator>RgbImageMode</pInvalidator>
<pInvalidator>RgbAutoExpo</pInvalidator>
</feature>
<feature id="0x1104" addr="0x10" name="image width" rw="1" volatile="1"/>
<feature id="0x1105" addr="0x14" name="image height" rw="1" volatile="1"/>
<feature id="0x1003" name="intrinsic width" rw="1">2560</feature>
<feature id="0x1004" name="intrinsic height" rw="1">1920</feature>
<feature id="0x7000" name="rgb intrinsic" rw="1"> 1864.1180144281498 0.0 1307.0030719935453 0.0 1864.6830513476277 958.5870347263894 0.0 0.0 1.0</feature>
<feature id="0x7001" name="rgb to leftIR extrinsic" rw="1"> 0.9999817911394832 0.0053463048999984044 -0.0027990022128712147 24.99383871986873 -0.005382158538158834 0.9999014972278107 -0.012962569616111353 -0.18216453078306927 0.002729424653938707 0.01297739825614758 0.9999120648214821 0.07044507666672253 0.0 0.0 0.0 1.0</feature>
<feature id="0x7006" name="distortion" rw="1">0.12058665834396809 0.5239261811792411 -0.00043789764478739744 -0.0005316767148791899 0.3414723272283012 0.3858539754884713 0.43955206535590785 0.546781530809827 0.000697851625874692 -0.0003086461431789333 0.0009279802106462601 -0.0001894273470827574</feature>
</component>
<component id="0x00400000" addr="0x07000000" name="laser">
<feature id="0x1500" addr="0x500" name="power" rw="3" min="0" max="100" inc="1" writableAtRun="1">100</feature>
<feature id="0x4501" addr="0x504" name="auto ctrl" rw="3"/>
</component>
<component id="0x01000000" addr="0x08000000" name="histogram">
</component>
<component id="0x02000000" addr="0x09000000" name="storage">
<feature id="0x600a" addr="0x100000" name="custom block" rw="3" volatile="1" size="4096"/>
<feature id="0x600b" addr="0x200000" name="isp block" rw="3" volatile="1" size="65536"/>
</component>
<constraint id="0x00000001">
<rules id="0x0001" msg="image_num x match_h out of range">
<script>
FunctionCheck(a,b)
{
if (0) {
return ((a + 1) >> 1) * b < 20;
} else {
return a * b < 20;
}
}
</script>
<parameter id="0x00011610" rw="1" hide="1">a</parameter>
<parameter id="0x00011613" rw="1" hide="1">b</parameter>
</rules>
</constraint>
<IntSwissKnife Name="ImageFormatIsYUV">
<pVariable id="0x00103109">IMG_MODE</pVariable>
<Formula>(IMG_MODE & 0xff000000) == 0x22000000</Formula>
</IntSwissKnife>
<IntSwissKnife Name="RgbROIEnabled">
<pVariable id="0x00104300">AEC</pVariable>
<pVariable id="0x00103109">IMG_MODE</pVariable>
<Formula>((IMG_MODE & 0xff000000) == 0x22000000) && AEC</Formula>
</IntSwissKnife>
</config>
4.2 FM855-E1相机内参说明
运行DumpCalibInfo例子,打印出来的内参如下:
{
"sn": "207000152898",
"timestamp": "2025-12-08 18:01:00",
"depth_calib_info" : {
"intri": [
1038.711182,
0.000000,
661.240784,
0.000000,
1038.711182,
473.852783,
0.000000,
0.000000,
1.000000
],
"image_width": 1280,
"image_height": 960,
"scale_unit": 1.000000
},
"color_calib_info" : {
"intri": [
1854.750610,
0.000000,
1283.600952,
0.000000,
1854.823242,
936.768982,
0.000000,
0.000000,
1.000000
],
"extri": [
0.999992,
0.003131,
-0.002648,
24.949505,
-0.003122,
0.999990,
0.003352,
-0.082591,
0.002658,
-0.003344,
0.999991,
-0.044184,
0.000000,
0.000000,
0.000000,
1.000000,
0.247844
],
"distortion": [
0.247844,
0.422229,
0.000910,
-0.000698,
0.189628,
0.511626,
0.388798,
0.323837,
0.001284,
-0.000207,
-0.002286,
0.000561
],
"image_width": 2560,
"image_height": 1920
}
}
而运行DumpAllFeature例子,得到的内参如下:
TY_COMPONENT_DEPTH_CAM:
TY_STRUCT_CAM_INTRINSIC: comp(0x10000) feat(0x7000) name(depth intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
519.355591 0.000000 330.620392
0.000000 519.355591 236.926392
0.000000 0.000000 1.000000
TY_COMPONENT_IR_CAM_LEFT:
TY_STRUCT_CAM_INTRINSIC: comp(0x40000) feat(0x7000) name(intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1103.123047 0.000000 688.029053
0.000000 1103.051025 464.999268
0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x40000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.139530 0.241330 -0.001936 0.005558
0.278741 0.411328 0.162599 0.413992
-0.012373 0.002406 0.003598 -0.000606
TY_COMPONENT_IR_CAM_RIGHT:
TY_STRUCT_CAM_INTRINSIC: comp(0x80000) feat(0x7000) name(intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1100.755249 0.000000 651.039795
0.000000 1101.094971 484.487427
0.000000 0.000000 1.000000
TY_STRUCT_EXTRINSIC_TO_DEPTH: comp(0x80000) feat(0x7001) name(leftIR to rightIR extrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
0.999506 -0.006591 0.030732 -100.038094
0.007075 0.999852 -0.015672 -0.061438
-0.030624 0.015882 0.999405 0.618249
0.000000 0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x80000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.153073 0.165764 0.001198 -0.002061
0.278788 0.425156 0.086344 0.403616
0.004514 -0.000852 -0.002535 0.000467
TY_COMPONENT_RGB_CAM_LEFT:
TY_STRUCT_CAM_INTRINSIC: comp(0x100000) feat(0x7000) name(rgb intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1854.750610 0.000000 1283.600952
0.000000 1854.823242 936.768982
0.000000 0.000000 1.000000
TY_STRUCT_EXTRINSIC_TO_DEPTH: comp(0x100000) feat(0x7001) name(rgb to leftIR extrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
0.999992 0.003131 -0.002648 24.949505
-0.003122 0.999990 0.003352 -0.082591
0.002658 -0.003344 0.999991 -0.044184
0.000000 0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x100000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.247844 0.422229 0.000910 -0.000698
0.189628 0.511626 0.388798 0.323837
0.001284 -0.000207 -0.002286 0.000561
从此处看出,DumpCalibInfo例子打印的是出厂标定的内外参,而DumpAllFeature例子,则是会根据分辨率,内参相应做出变化。
4.2.1 深度图内参


1.cx和cy通常大约是图像分辨率W和H的一半,得出FM855-E1相机深度图出厂标定分辨率为1280x960
2.由于深度相机是虚拟相机,所以其畸变参数以及外参都是零矩阵。
4.2.2 彩色图内参/畸变系数/外参
TY_COMPONENT_RGB_CAM_LEFT:
TY_STRUCT_CAM_INTRINSIC: comp(0x100000) feat(0x7000) name(rgb intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1854.750610 0.000000 1283.600952
0.000000 1854.823242 936.768982
0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x100000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.247844 0.422229 0.000910 -0.000698
0.189628 0.511626 0.388798 0.323837
0.001284 -0.000207 -0.002286 0.000561
1.cx和cy通常大约是图像分辨率W和H的一半,得出FM855-E1相机深度图出厂标定分辨率为2560x1920
2.彩色图相机的畸变系数如下:

用TYGetEnum(hDevice, comp_id, TY_ENUM_LENS_OPTICAL_TYPE, &lens_tpye)来区分新旧相机。
//TY_LENS_PINHOLE是小孔成像,RGB畸变系数依次是k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4
//TY_LENS_FISHEYE是新的鱼眼标定,RGB畸变系数依次是k1,k2,k3,k4
3.彩色图相机的外参如下:
TY_STRUCT_EXTRINSIC_TO_DEPTH: comp(0x100000) feat(0x7001) name(rgb to leftIR extrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
0.999992 0.003131 -0.002648 24.949505
-0.003122 0.999990 0.003352 -0.082591
0.002658 -0.003344 0.999991 -0.044184
0.000000 0.000000 0.000000 1.000000

4.2.3 左右IR极限约束前内参/极限校正后内参



TY_COMPONENT_IR_CAM_LEFT:
TY_STRUCT_CAM_INTRINSIC: comp(0x40000) feat(0x7000) name(intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1103.123047 0.000000 688.029053
0.000000 1103.051025 464.999268
0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x40000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.139530 0.241330 -0.001936 0.005558
0.278741 0.411328 0.162599 0.413992
-0.012373 0.002406 0.003598 -0.000606
TY_COMPONENT_IR_CAM_RIGHT:
TY_STRUCT_CAM_INTRINSIC: comp(0x80000) feat(0x7000) name(intrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
1100.755249 0.000000 651.039795
0.000000 1101.094971 484.487427
0.000000 0.000000 1.000000
TY_STRUCT_EXTRINSIC_TO_DEPTH: comp(0x80000) feat(0x7001) name(leftIR to rightIR extrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
0.999506 -0.006591 0.030732 -100.038094
0.007075 0.999852 -0.015672 -0.061438
-0.030624 0.015882 0.999405 0.618249
0.000000 0.000000 0.000000 1.000000
TY_STRUCT_CAM_DISTORTION: comp(0x80000) feat(0x7006) name(distortion) access(1) bindComponent(0x0) bindFeature(0x0)
0.153073 0.165764 0.001198 -0.002061
0.278788 0.425156 0.086344 0.403616
0.004514 -0.000852 -0.002535 0.000467
4.3 FM855-E1相机光心位置

同时通过RGB外参,可得知RGB至左IR应该在25mm左右。
TY_STRUCT_EXTRINSIC_TO_DEPTH: comp(0x100000) feat(0x7001) name(rgb to leftIR extrinsic) access(1) bindComponent(0x0) bindFeature(0x0)
0.999992 0.003131 -0.002648 24.949505
-0.003122 0.999990 0.003352 -0.082591
0.002658 -0.003344 0.999991 -0.044184
0.000000 0.000000 0.000000 1.000000
5.成像问题FAQ
5.1 FM855-E1 成像问题
5.1.1 黑色托盘成像差
此时需要查看散斑相机的IR图,首先需要关闭light Source里面的auto ctrl属性,之后再打开左右相机IR图查看散斑信息,是否过曝,过亮,详细操作如下图:
建议先将analog gain调整至1至2,之后调整gain至20~32区间,调整完毕后再打开深度图取流,观察深度图成像。

5.1.2 点云噪点多
搭配图漾PercipioViewer2.6.1及其以上版本软件时,FFM855-E1相机自带的SGBM属性会被隐藏,打开SGBM参数如下图:

同时建议开启滤波设置,不然会有很多误匹配的点。

5.1.3 近处拍摄料箱有溢出点云

这个是因为出厂默认的disparity_num默认是160,如果在近处使用,建议这个值设置1在116~132之间
5.2 更改不了分辨率?

如果某一组件打开,这个时候要想修改其他组件的分辨率,需要先关闭所有组件取流,才能进行修改分辨率。
5.3 为什么打开深度图后,查看相机左右IR图是黑图?

如果需要查看左右IR散斑图,需要进行如下操作:
1.需要关闭深度图取流
2.同时关闭ligth组件下的auto ctrl属性
3.再打开左右IR图

6.FM855-E1相机测试结果
6.1 FM855-E1 帧率测试
6.1.1 FM855-E1 出图延迟时间
出图延迟时间:相机使用默认配置,在连续采集模式下统计从开始曝光到系统完全处理完图像的总之时间,单位微秒。
出图延时时间测试结果如下所示:


6.1.2 FM855-E1 帧率测试
FPS(帧率):指相机设置在自由采集模式下,上位机每秒采集的图像帧数。
FM855-E1帧率测试结果如下所示:


7.FM855-E1相机属性设置
7.1 Device组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage区(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| device 组件 | 数据流同步 | TY_ENUM_STREAM_ASYNC | TY_STREAM_ASYNC_ALL、TY_STREAM_ASYNC_OFF、TY_STREAM_ASYNC_DEPTH、TY_STREAM_ASYNC_RGB、TY_STREAM_ASYNC_DEPTH_RGB | TYSetEnum(hDevice, TY_COMPONENT_DEVICE, TY_ENUM_STREAM_ASYNC, TY_STREAM_ASYNC_ALL); | 否 |
| 状态保持开关 | TY_BOOL_KEEP_ALIVE_ONOFF | true / false | TYSetBool(hDevice, TY_COMPONENT_DEVICE, TY_BOOL_KEEP_ALIVE_ONOFF, false); | 否 | |
| 状态保持时间 | TY_INT_KEEP_ALIVE_TIMEOUT | 2000-30000,单位:毫秒 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_KEEP_ALIVE_TIMEOUT, 6000); | 否 | |
| 采集时间 | TY_INT_CAPTURE_TIME_US | 可读不可写,int整型,单位:微秒 | int32_t default_value=0; TYGetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_CAPTURE_TIME_US, &default_value); | 否 | |
| 相机对时功能 | TY_ENUM_TIME_SYNC_TYPE | TY_TIME_SYNC_TYPE_NTP、TY_TIME_SYNC_TYPE_HOST、TY_TIME_SYNC_TYPE_NONE | TYSetEnum(hDevice, TY_COMPONENT_DEVICE, TY_ENUM_TIME_SYNC_TYPE, TY_TIME_SYNC_TYPE_NTP); | 否 | |
| 设置相机触发模式 | TY_STRUCT_TRIGGER_PARAM_EX | 自由采集(TY_TRIGGER_MODE_OFF)、软(硬)触发(TY_TRIGGER_MODE_SLAVE)、TY_TRIGGER_MODE_M-SIG、TY_TRIGGER_MODE_M-PER | TY_TRIGGER_PARAM_EX trigger; trigger.mode = TY_TRIGGER_MODE_OFF;//根据需要的工作模式进行配置 ASSERT_OK(TYSetStruct(hDevice, TY_COMPONENT_DEVICE, TY_STRUCT_TRIGGER_PARAM_EX, &trigger, sizeof(trigger))); | 否 | |
| 数据传输包大小 | TY_INT_PACKET_SIZE | 100-1500,可读写 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_PACKET_SIZE, 100); | 否 | |
| 接受包比例 | TY_INT_ACCEPTABLE_PERCENT | 0-100,可读写 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_ACCEPTABLE_PERCENT, 90) | 否 | |
| 输出电平 | TY_BOOL_TRIGGER_OUT_IO | true / false | TYSetBool(hDevice, TY_COMPONENT_DEVICE, TY_BOOL_TRIGGER_OUT_IO, true); | 否 | |
| 包延迟时间 | TY_INT_PACKET_DELAY | 0-10000,单位:微秒 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_PACKET_DELAY, value); | 否 | |
| 触发延迟时间 | TY_INT_TRIGGER_DELAY_US | 0-1300000,单位:微秒 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_TRIGGER_DELAY_US, time); | 否 | |
| 触发过滤时间 | TY_INT_TRIGGER_DURATION_US | 1-1300000,单位:微秒 | TYSetInt(hDevice, TY_COMPONENT_DEVICE, TY_INT_TRIGGER_DURATION_US, time); | 否 | |
| 触发防抖功能 | TY_STRUCT_DIO_WORKMODE | / | TY_DI_WORKMODE di_wm; di_wm.mode = TY_DI_PE_INT; di_wm.int_act = TY_DI_INT_TRIG_CAP; uint32_t time_hw = 10;//单位ms,硬件滤波,小于设定时间的电平信号会被过滤 uint32_t time_sw = 200;//单位ms,软件滤波,连续高频触发情形,小于设置周期的后一个触发信号将被过滤 di_wm.reserved[0] = time_hw | (time_sw << 16); TYSetStruct(hDevice, TY_COMPONENT_DEVICE, TY_STRUCT_DIO_WORKMODE, &di_wm, sizeof(di_wm)); | 否 | |
| 图像重传 | TY_BOOL_GVSP_RESEND | true / false | TYSetBool(hDevice, TY_COMPONENT_DEVICE, TY_BOOL_GVSP_RESEND, true) | 否 |
7.2 Laser组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage区(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| laser组件 | 激光强度自动调节 | TY_BOOL_LASER_AUTO_CTRL | true / false | TYSetBool(hDevice, TY_COMPONENT_LASER, TY_BOOL_LASER_AUTO_CTRL, 0); | 是 |
| 激光强度 | TY_INT_LASER_POWER | 0-100 | TYSetInt(hDevice, TY_COMPONENT_LASER, TY_INT_LASER_POWER, 100); | 是 |
7.3 Depth组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage区(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| depth组件 | 深度图分辨率 | TY_ENUM_IMAGE_MODE | 1280x960\640x480\320x240 | TYSetEnum(hDevice, TY_COMPONENT_DEPTH_CAM, TY_ENUM_IMAGE_MODE, TY_IMAGE_MODE_DEPTH16_640x480); | 是 |
| 深度图中像素值的单位 | TY_FLOAT_SCALE_UNIT | 0.0125-8 | TYSetFloat(hDevice, TY_COMPONENT_DEPTH_CAM, TY_FLOAT_SCALE_UNIT, value) | 是 | |
| 视差搜索范围 | TY_INT_SGBM_DISPARITY_NUM | 1 ~ 320 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_DISPARITY_NUM, value); | 是 | |
| 开始搜索的视差值 | TY_INT_SGBM_DISPARITY_OFFSET | -1280 ~ 1280 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_DISPARITY_OFFSET, value); | 是 | |
| 视差匹配窗口的高 | TY_INT_SGBM_MATCH_WIN_HEIGHT | 1 - 19 奇数 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_MATCH_WIN_HEIGHT, value); | 是 | |
| 视差匹配窗口的宽 | TY_INT_SGBM_MATCH_WIN_WIDTH | 1 - 17 奇数 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_MATCH_WIN_WIDTH, value); | 是 | |
| 用于深度计算的 IR 图像数量 | TY_INT_SGBM_IMAGE_NUM | 1 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_IMAGE_NUM, value); | 是 | |
| 周围像素约束惩罚参数 P2 | TY_INT_SGBM_SEMI_PARAM_P2 | 0 - 10000 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_SEMI_PARAM_P2, value); | 是 | |
| 最优匹配点与次优匹配点的百分比 | TY_INT_SGBM_UNIQUE_FACTOR | 0 - 511 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_UNIQUE_FACTOR, value); | 是 | |
| 最优匹配点与次优匹配点差值的绝对值 | TY_INT_SGBM_UNIQUE_ABSDIFF | 0 - 10000 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_UNIQUE_ABSDIFF, value); | 是 | |
| 搜索滤波开关 | TY_BOOL_SGBM_HFILTER_HALF_WIN | true/false | TYSetBool(hDevice, TY_COMPONENT_DEPTH_CAM, TY_BOOL_SGBM_HFILTER_HALF_WIN, true); | 是 | |
| 中值滤波开关 | TY_BOOL_SGBM_MEDFILTER | true/false | TYSetBool(hDevice, TY_COMPONENT_DEPTH_CAM, TY_BOOL_SGBM_MEDFILTER, true); | 是 | |
| 中值滤波设置数值 | TY_INT_SGBM_MEDFILTER_THRESH | 1 - 511 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_MEDFILTER_THRESH, value); | 是 | |
| 左右一致性检查开关 | TY_BOOL_SGBM_LRC | true/false | TYSetBool(hDevice, TY_COMPONENT_DEPTH_CAM, TY_BOOL_SGBM_LRC, true); | 是 | |
| 左右一致性设置数值 | TY_INT_SGBM_LRC_DIFF | 1 - 4095 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_LRC_DIFF, value); | 是 | |
| 纹理滤波阈值 | TY_INT_SGBM_TEXTURE_THRESH | 0-65535 | TYSetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_TEXTURE_THRESH, value) | 是 | |
| 纹理滤波偏移值 | TY_INT_SGBM_TEXTURE_OFFSET | 只读 | int32_t value; TYGetInt(hDevice, TY_COMPONENT_DEPTH_CAM, TY_INT_SGBM_TEXTURE_OFFSET, &value); | 是 |
7.4 RGB组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage区(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| color组件 | 像素分辨率 | TY_ENUM_IMAGE_MODE | TY_IMAGE_MODE_YUVV_2560x1920、TY_IMAGE_MODE_YUVV_1280x960、TY_IMAGE_MODE_YUVV_1920x1440、TY_IMAGE_MODE_YUVV_640x480、TY_IMAGE_MODE_CSI_BAYER12GBRG_2560x1920 | TYSetEnum(hDevice, TY_COMPONENT_RGB_CAM, TY_ENUM_IMAGE_MODE, TY_IMAGE_MODE_YUVV_640x480); | 是 |
| ROI区域 | TY_STRUCT_AEC_ROI | 长宽范围在设置的分辨率范围内 (x、y)为矩形左上角坐标,w、h为矩形宽和高,w、h不能超过当前分辨率的宽高 | TY_AEC_ROI_PARAM aec_roi_param; aec_roi_param.x = 0; aec_roi_param.y = 0; aec_roi_param.w = 100; aec_roi_param.h = 110; ASSERT_OK(TYSetStruct(hDevice, TY_COMPONENT_RGB_CAM, TY_STRUCT_AEC_ROI, &aec_roi_param, sizeof(TY_AEC_ROI_PARAM))); | 否 | |
| 自动白平衡 | TY_BOOL_AUTO_AWB | true / false | TYSetBool(hDevice, TY_COMPONENT_RGB_CAM, TY_BOOL_AUTO_AWB, true); | 是 | |
| 自动曝光 | TY_INT_AE_TARGET_V | 0-4000 | TYSetInt(hDevice, TY_COMPONENT_RGB_CAM, TY_INT_AE_TARGET_Y, 3500) | 是 | |
| 增益 | TY_BOOL_AUTO_EXPOSURE | true / false | TYSetBool(hDevice, TY_COMPONENT_RGB_CAM, TY_BOOL_AUTO_EXPOSURE, true); | 是 | |
| 曝光时间 | TY_INT_EXPOSURE_TIME | 0-66600 | TYSetInt(hDevice, TY_COMPONENT_RGB_CAM, TY_INT_EXPOSURE_TIME, value); | 是 | |
| 模拟增益 | TY_INT_ANALOG_GAIN | 1-65535 | TYSetInt(hDevice, TY_COMPONENT_RGB_CAM, TY_INT_ANALOG_GAIN, value); | 是 |
7.5 左IR组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage里(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| 左ir组件 | 开启畸变校正 | TY_BOOL_UNDISTORTION | true / false | TYSetBool(hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_BOOL_UNDISTORTION, true); | 否 |
| 增益 | TY_INT_GAIN | 0-255 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_INT_GAIN, value); | 是 | |
| 模拟增益 | TY_INT_ANALOG_GAIN | 0-3 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_INT_ANALOG_GAIN, value); | 是 | |
| 曝光时间 | TY_INT_EXPOSURE_TIME | 3-990 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_INT_EXPOSURE_TIME, value); | 是 | |
| 是否开启HDR | TY_BOOL_HDR | true / false | TYSetBool(hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_BOOL_HDR, true); | 是 | |
| HDR参数 | TY_BYTEARRAY_HDR_PARAMETER | 共有9个等级 仅能修改前两位,第一位是0-2,第二位是0-2 | uint32_t hdr_para[8] = {{0x2,0x2,0x0,0x0,0x0,0x0,0x0,0x0}; TYSetByteArray(pData->hDevice, TY_COMPONENT_IR_CAM_LEFT, TY_BYTEARRAY_HDR_PARAMETER, (const uint8_t*)(hdr_para), 1); | 是 |
7.6 右IR组件
| 组件类型 | 属性名称 | 属性 | 参数 | 设置方式举例 | 是否可以保存进相机Storage里(代码中可以不设置该属性) |
|---|---|---|---|---|---|
| 右ir组件 | 开启畸变校正 | TY_BOOL_UNDISTORTION | true / false | TYSetBool(hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_BOOL_UNDISTORTION, true); | 否 |
| 增益 | TY_INT_GAIN | 0-255 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_INT_GAIN, value); | 是 | |
| 模拟增益 | TY_INT_ANALOG_GAIN | 0-3 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_INT_ANALOG_GAIN, value); | 是 | |
| 曝光时间 | TY_INT_EXPOSURE_TIME | 3-990 | TYSetInt(hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_INT_EXPOSURE_TIME, value); | 是 | |
| 是否开启HDR | TY_BOOL_HDR | true / false | TYSetBool(hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_BOOL_HDR, true); | 是 | |
| HDR参数 | TY_BYTEARRAY_HDR_PARAMETER | 共有9个等级 仅能修改前两位,第一位是0-2,第二位是0-2 | uint32_t hdr_para[8] = {{0x2,0x2,0x0,0x0,0x0,0x0,0x0,0x0}; TYSetByteArray(pData->hDevice, TY_COMPONENT_IR_CAM_RIGHT, TY_BYTEARRAY_HDR_PARAMETER, (const uint8_t*)(hdr_para), 1); | 是 |
8.其他学习资料
1. 图漾官网相机规格书
2.双目立体匹配入门【一】
3.双目立体匹配步骤详解
4.立体视觉入门指南(1):坐标系与相机参数
5.双目立体视觉系统空间精度:精确定量分析
1563

被折叠的 条评论
为什么被折叠?



