TSDK(Thermal SDK)常见问题汇总(持续更新)
3
发表于2021-11-9
手机看帖
192
30644
Thermal SDK(后面统一称作TSDK)是大疆为用户提供的免费开源SDK,主要用于分析、处理红外照片。用户可以在Windows或Linux中借助该SDK开发出自己的专用软件,实现对R-JPEG红外照片的处理和温度测量等功能。
适配机型
支持以下机型所拍摄的红外照片(R-JPEG):
下载页面
版本信息
版本 | 日期 | 更新说明 | v1.0 | 2020/11/10 | 第一次发布,支持设备:H20T、XT S | v1.1 | 2021/10/29 | 重构库依赖关系,支持新设备:M2EA | v1.2(当前版本) | 2021/12/09 | 解决M2EA部分照片测温错误、崩溃问题 |
TSDK版本不定期更新,如果上表中填写的版本与下载页面的版本不一致,则表示近期(1~2个星期)即将更新版本,请自助刷新下载页面获取最新版本。
详细介绍
下载TSDK的压缩包文件后,可查看以下文件了解详细内容
- Readme.md:介绍TSDK的开发环境以及utility文件夹下测试程序的使用方法
- License.txt:声明TSDK的许可证信息(使用TSDK前,请详细阅读该文件)
- doc/index.html:列出TSDK API(tsdk-core/api/dirp_api.h)的详细接口信息
- sample/build.sh,sample/build.bat:分别是用于在Linux和Windows下进行测试程序自动编译的脚本
- dataset:若干用于测试的R-JPEG样张
如何获取帮助
如若在开发过程中遇到相关问题,可直接在下方留言,我们会及时进行解答。
常见问题
1. 是否提供了示例程序,都有什么功能,如何使用?
在TSDK中包含了2个示例程序,可以调用TSDK机型基本的功能测试
dji_irp
可以输出3种图像:
- 原始RAW图像:调用dirp_get_original_raw可以得到红外探测器输出的原始RAW图,数据类型为UINT16
- 温度图像:调用dirp_measure得到INT16数据类型的图像输出,每个数据除以10以后即为温度值(即最小精度0.1℃);调用dirp_measure_ex得到FLOAT32数据类型的图像输出,每个数据即是对应坐标点的测量温度值
- 伪彩色图像:调用dirp_process得到RGB888的图像输出,可以直接用于观测红外照片效果;调用dirp_process_ex得到FLOAT32的图像输出,可以用于图像拼接或自定义伪彩色处理
输出的图像与原始图像分辨率相同(如H20T的输出分辨率均为640*512)
dji_ircm
- 输出R-JPEG对应的所有伪彩色LUT表
- 输入FLOAT32类型的单幅图像、拼接图像,输出同样分辨率的伪彩色图像
2. 支持哪些平台、哪些语言进行开发?
支持平台:
- Windows(Windows 10 version 1804,Visual Studio 2015)
- Linux(Ubuntu16.04 LTS,gcc/g++ 5.4.0)
支持语言:
TSDK在发布前会在对应的Windows合Ubuntu环境中进行相关测试、验证。
如您使用了其它平台、语言,请自行完成适配、移植等工作。
3. TSDK使用时包含哪些文件?
以Windows x64开发环境为例,请将压缩包内tsdk-core/lib/windows/release_x64目录下的所有文件拷贝到您的开发目录中,包括:
- libdirp.dll,开发的程序需要链接该文件
- libv_*.dll,开发的程序不需要链接该文件
- libv_list.ini,必须放在和libdirp.dll相同的目录下
测温相关
1. 如何测温,温度和像素的关系是什么?
TSDK的测温结果输出,仍是一个图像,且分辨率于原图像大小一致。只是这个图像中每个像素的数据不再表示颜色信息,而是表示了温度。
有两种测温处理函数:
- dirp_measure:像素数据类型为INT16(每个像素2字节),该值除以10以后即为温度值(如数值235表示23.5℃,-112表示零下11.2℃)
- dirp_measure_ex:像素数据类型为FLOAT32(每个像素4字节),该值直接表示了该点的温度值
2. 红外测温指的是辐射温度还是物体表面温度?
TSDK测量得到的温度结果都是物体表面辐射温度
3. 可以使用那些参数对测温结果进行校正?
调用dirp_set_measurement_params函数,可以对测温参数进行配置,配置完成后需要再次运行dirp_measure或dirp_measure_ex才可已得到修改参数后的测温结果。
测温参数包含以下4个类型:
distance,测温距离:
- 单位:米
- 范围:1~25,超过25时填写25即可(超过25米时测温精度会有所下降)
- 说明:待测目标的距离。红外热像仪接收物体自身辐射的红外线生成热像图,距离越远,红外辐射衰减越多。红外热像仪出厂时默认的标定距离一般是固定的,在这个距离测温最精确,距离过近或过远都会增大测温误差。
humidity,湿度:
- 单位:%
- 范围:20~100
- 说明:目标测量环境下的空气相对湿度。请根据实际测量环境配置,默湿度值配置是否准确将影响测温精度,但影响度较小。
emissivity,发射率:
- 单位:0.01
- 范围:0.10~1.00
- 说明:被测物体表面以辐射的形式释放能量相对强弱的能力。可参考“常见物质发射率表”进行配置,由于被测物体表面可能存在腐蚀、氧化等情况,实际发射率值与参考值可能存在一定差异。发射率配置是否准确将影响测温精度,且影响度较大。
reflection,反射温度:
- 单位:℃
- 范围:-40.0~500.0
- 说明:周围环境物体辐射的能量可能被待测目标表面反射,与待测目标辐射一同被相机接收,造成测温误差。如果周围环境没有特别的高温或低温物体,反射温度配置为环境温度即可。反射温度是否配置准确会影响测温精度,数值与环境温度偏差越大影响度越大。
4. 是否支持红外视频的测温?
红外视频录制格式一般为MP4,该文件内不包含测温相关的数据,因此不能用于测温。
伪彩相关
1. 如何实现伪彩处理,都有哪些功能?
有两种伪彩处理函数:
- dirp_process:像素数据类型为RGB888(每个像素3字节),输出结果可以直接用于创建图像矩阵,或是保存成文件,然后用类似ImageJ的工具直接打开
- dirp_process_ex:像素数据类型为FLOAT32(每个像素4字节),该输出结果可以用于图像拼接或自定义伪彩色处理等工作
RAW图相关
1. 如何获取红外的原始RAW数据?
有一种RAW图处理函数:
- dji_get_original_raw:可以获取红外探测器输出的原始RAW图,数据类型为UINT16
|
|
|
|