正在上传图片(0/1)

TSDK(Thermal SDK)常见问题汇总(持续更新)

 3
手机看帖 192 30644
Thermal SDK(后面统一称作TSDK)是大疆为用户提供的免费开源SDK,主要用于分析、处理红外照片。用户可以在Windows或Linux中借助该SDK开发出自己的专用软件,实现对R-JPEG红外照片的处理和温度测量等功能。

适配机型
支持以下机型所拍摄的红外照片(R-JPEG):
  • 禅思H20T
  • 禅思XT S
  • 御 2 行业进阶版(M2EA)

下载页面
  • 访问大疆官网->服务于支持->下载中心->软件工具->大疆红外热分析工具->DJI Thermal SDK页面免费下载:https://www.dji.com/cn/downloads/softwares/dji-thermal-sdk
  • 访问大疆官网禅思H20系列相机、禅思XTS相机、御 2 行业进阶版的下载页面免费下载

版本信息
版本 日期 更新说明
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.shsample/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)
支持语言:
  • C
  • C++

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
评论
上传
你需要登录之后才能回帖    登录 | 注册
jiangnju   2021-11-12 3#
请问,何时上线支持御2行业进阶版的TSDK?
上大韩军   2021-11-25 4#
使用御2行业进阶版的TSDK开发中,出现DIRP_ERROR_INVALID_INI = -15, : Invalid ini file错误,是什么原因造成的,问题再那里?
Lifelong   2021-11-25 5#
DJI Thermal SDK API  v1.1  调用int32_t dirp_create_from_rjpeg 函数返回值为-15,请问这个返回值是指哪里有问题
楼主  Osmo Pocket认证用户 2021-11-26 6#
上大韩军11-25 16:04
使用御2行业进阶版的TSDK开发中,出现DIRP_ERROR_INVALID_INI = -15, : Invalid ini file错误,是什么原因造成的,问题再那里?
在tsdk-core/lib/windows/release_x64 目录下,有一个libv_list.ini的文件,请确保该文件与libdirp.dll、libv_*.dll在同一目录下。
libdirp.dll运行dirp_create_from_rjpeg时会用到该配置文件
楼主  Osmo Pocket认证用户 2021-11-26 7#
jiangnju11-12 12:08
请问,何时上线支持御2行业进阶版的TSDK?
你好,支持M2EA版本的TSDK已经上线,网址:https://www.dji.com/cn/downloads/softwares/dji-thermal-sdk
楼主  Osmo Pocket认证用户 2021-11-26 8#
Lifelong11-25 16:33
DJI Thermal SDK API  v1.1  调用int32_t dirp_create_from_rjpeg 函数返回值为-15,请问这个返回值是指哪里有问题
请确保libv_list.ini文件有正确放置
zhouzzh   2021-11-26 9#
支持centos系统吗
楼主  Osmo Pocket认证用户 2021-12-1 11#
zhouzzh11-26 15:36
支持centos系统吗
您好,没有针对centos进行过测试,建议您使用Ubuntu 16.04来运行(Ubuntu 16.04是经过测试的)
本帖最后由 djiuser_SNhIeCwjJpDJ 于 2021-12-13 14:12 编辑

你好 有支持mac系统的动态库吗 例如.jnilib .dylib库文件
magichood   2021-12-14 13#
用dji_irp.cpp执行程序,执行到dirp_create_from_rjpeg出错,错误码-16。libdirp.so依赖是正常的。此错误已经出现很久了,麻烦看一下。用官网上的正式版本dji_thermal_sdk_v1.1_20211029,还是报同样的错误。
magichood12-14 10:40
用dji_irp.cpp执行程序,执行到dirp_create_from_rjpeg出错,错误码-16。libdirp.so依赖是正常的。此错误已经出现很久了,麻烦看一下。用官网上的正式版本dji_thermal_sdk_v1.1_20211029,还是报同样的错误。[图片]
我也同上 1.0版本就没问题
magichood   2021-12-14 15#
djiuser_SNhIeCw12-14 13:58
我也同上 1.0版本就没问题
对,V1.0还支持禅思,升级到V1.1后,禅思跟御2都不支持了,
楼主  Osmo Pocket认证用户 2021-12-14 16#
magichood12-14 10:40
用dji_irp.cpp执行程序,执行到dirp_create_from_rjpeg出错,错误码-16。libdirp.so依赖是正常的。此错误已经出现很久了,麻烦看一下。用官网上的正式版本dji_thermal_sdk_v1.1_20211029,还是报同样的错误。[图片]
请确保libdirp.dll的同级目录下包含了libv_list.ini,libv_dirp.dll,libv_iirp.dll等文件

比如windows环境下,tsdk-core/lib/windows/reelase_x64下面的所有文件都要被复制到您自己的开发路径下
楼主  Osmo Pocket认证用户 2021-12-14 17#
djiuser_SNhIeCw12-13 10:26
你好 有支持mac系统的动态库吗 例如.jnilib .dylib库文件
您好,TSDK不支持Mac OS系统
magichood   2021-12-15 18#
DJI-DEV版主12-14 19:57
请确保libdirp.dll的同级目录下包含了libv_list.ini,libv_dirp.dll,libv_iirp.dll等文件

比如windows环境下,tsdk-core/lib/windows/reelase_x64下面的所有文件都要被复制到您自己的开发路径下
已确保libdirp.dll的同级目录下包含了libv_list.ini,libv_dirp.dll,libv_iirp.dll等文件。我们试了,windows环境下没问题,ubuntu1804下有问题。千万别告诉我只有1604下才能用。
楼主  Osmo Pocket认证用户 2021-12-15 19#
magichood12-15 09:09
已确保libdirp.dll的同级目录下包含了libv_list.ini,libv_dirp.dll,libv_iirp.dll等文件。我们试了,windows环境下没问题,ubuntu1804下有问题。千万别告诉我只有1604下才能用。
请您在Ubuntu16.04中尝试一下,其它版本的Linux都没有经过相关测试。
生成的raw格式文件 怎么打开看啊
楼主  Osmo Pocket认证用户 2021-12-15 21#
djiuser_SNhIeCw12-15 11:41
生成的raw格式文件 怎么打开看啊
可以借助类似ImageJ的RAW图查看工具打开,分辨率选择640*512,数据格式选择RAW对应的格式,小端模式
-a extract:unsigned int 16
-a measure: signed int 16
-a measure_ex: float32或real32
-a process: rgb888
-a process_ex: float32或real32

也可以在软件中调用用fopen('rb')打开后进行读取,读取的数据可以直接放到640*512*n的数组里面。数据类型和上面写到的类似
Lifelong   2022-1-5 22#
使用御2行业进阶版的红外相机拍照距离10米,使用TSDK分析红外照片时,为什么会出现负温度值?当天温度不应该有负值?
bumaichanp   2022-1-6 23#
TSDK(Thermal SDK)在RedHat 8.54上运行有问题,大佬给看看
bumaichanp   2022-1-6 24#
CentOS7  gcc 已升级到9.1.0,

运行出现:



楼主  Osmo Pocket认证用户 2022-1-10 25#
Lifelong1-5 09:34
使用御2行业进阶版的红外相机拍照距离10米,使用TSDK分析红外照片时,为什么会出现负温度值?当天温度不应该有负值?
请使用最新v1.2版本测试一下。
PS:如果测温点为天空,或者能够反射天空的高反射率物体表面,是有可能测出负温度的。
楼主  Osmo Pocket认证用户 2022-1-10 26#
bumaichanp1-6 17:42
CentOS7  gcc 已升级到9.1.0,
[图片]
运行出现:
[图片]
您好,CentOS相关环境没有经过测试,建议您使用Ubuntu16.04自带的gcc,该环境是经过测试的。
我如果要检测红外成像的斑点,这个库支持吗?
比如我要实现光伏板 斑点的检测?是需要自己再写程序实现吗?
jiangnju   2022-1-20 28#
楼主你好
djiuser_u0PjZ8P   2022-2-5 29#
请问可以用dji_thermal_sdk对御2行业进阶版设备拍摄的红外图像的环境温度、发射率、距离参数进行修改并输出相应的温度信息矩阵吗?我在操作时遇到了报错,请问正确的调用语句是什么?
djiuser_u0PjZ8P   2022-2-5 30#
Lifelong1-5 09:34
使用御2行业进阶版的红外相机拍照距离10米,使用TSDK分析红外照片时,为什么会出现负温度值?当天温度不应该有负值?
您好,请问您是怎么使用TSDK来修改拍摄距离参数的
楼主  Osmo Pocket认证用户 2022-2-7 31#
djiuser_MCJhmYo1-19 16:30
我如果要检测红外成像的斑点,这个库支持吗?
比如我要实现光伏板 斑点的检测?是需要自己再写程序实现吗?
TSDK不支持检测特征斑点等功能,需要您自己写程序,处理TSDK的输出结果(温度图、伪彩图或原始raw图)进行处理
楼主  Osmo Pocket认证用户 2022-2-7 32#
djiuser_u0PjZ8P2-5 10:02
请问可以用dji_thermal_sdk对御2行业进阶版设备拍摄的红外图像的环境温度、发射率、距离参数进行修改并输出相应的温度信息矩阵吗?我在操作时遇到了报错,请问正确的调用语句是什么?[图片]
请等待下个版本(2月底或3月初),TSDK针对M2EA的处理会修复该问题。
暂时请跳过该步骤。
BourneZhang   2022-3-8 33#
你好,cmake 3.16.3经过测试吗?
littlelambbb   2022-3-16 34#
DJI-DEV版主2-7 14:22
请等待下个版本(2月底或3月初),TSDK针对M2EA的处理会修复该问题。
暂时请跳过该步骤。
你好,请问新版本什么时候发布
fans75d68a82   2022-3-18 37#


根据参数提示,我尝试添加红外距离参数,但响应错误,请问这是该TSDK版本的问题,还是我的语句错误呢?
楼主  Osmo Pocket认证用户 2022-3-23 38#
BourneZhang3-8 16:08
你好,cmake 3.16.3经过测试吗?
更高版本的CMAKE没有经过测试,推荐使用指定版本

ps: cmake的版本只影响到了sample/CMakeLists.txt中的命令,如果使用高级别的cmake遇到问题,可以尝试重新编写编译命令。
楼主  Osmo Pocket认证用户 2022-3-23 39#
littlelambbb3-16 16:34
你好,请问新版本什么时候发布
您好,因为近期发布了最新的M30和H20N。为了更好的进行兼容,下个版本会迟一些再发布。具体时间还待定。
楼主  Osmo Pocket认证用户 2022-3-23 40#
fans75d68a823-18 11:08
[图片]

根据参数提示,我尝试添加红外距离参数,但响应错误,请问这是该TSDK版本的问题,还是我的语句错误呢?
您好,该问题会在下个版本进行修复,请暂时不要配置自定义距离参数
还有,
1. 请在使用dji_irp.exe处理时不要带有中文路径或空格
2. 如果下个版本仍有问题,请在使用dji_irp.exe添加-v detail命令参数
yxjchly   2022-3-24 41#
怎么通过tsdk给红外照片添加色度条及温度范围,就像图中的绿色方框及箭头所示这种。
MrYang2022   2022-4-2 42#
请问参数中,环境温度和反射温度有啥不同,为啥名称不一样,参数距离指的是什么距离,一张图片会有多个监测点,这个距离对于某一个监测点的话,那其他监测点的测温数据就不准确了吧
楼主  Osmo Pocket认证用户 2022-4-2 43#
yxjchly3-24 18:16
怎么通过tsdk给红外照片添加色度条及温度范围,就像图中的绿色方框及箭头所示这种。
[图片]
1. 色度条的颜色是用伪彩LUT表绘制而成的,您可以参考dji_ircm.cpp例子中对于dirp_get_pseudo_color_lut和prv_save_pseudo_color_lut这两个函数的调用,了解该伪彩LUT表的获取方法。

2.API中有一个函数:dirp_get_color_bar_adaptive_params,详细功能可以查看dirp_api.h文件中该函数接口的注释说明。
比如H20T的红外照片,您需要先运行: dirp_creater_from_rjpeg和dirp_process两个函数,让TSDK获取该照片对应的自适应温度上下限。
然后通过dirp_get_color_bar_adaptive_params即可获取该上下限值。
这个上下限就是您绿框中的上下限数字。
ps:一般情况下,您自己通过dirp_set_color_bar设置的自定义上下限也要在自适应上下限的范围内。否则设置将没有意义。
楼主  Osmo Pocket认证用户 2022-4-2 44#
MrYang20224-2 11:44
请问参数中,环境温度和反射温度有啥不同,为啥名称不一样,参数距离指的是什么距离,一张图片会有多个监测点,这个距离对于某一个监测点的话,那其他监测点的测温数据就不准确了吧[图片][图片]
Q1. 环境温度和反射温度有啥不同,为啥名称不一样
您可以查看H20T的用户手册第16页:https://dl.djicdn.com/downloads/ ... User_Manual-CHS.pdf
其中,反射温度就是背景辐射温度,环境温度就是空气温度


Q2. 参数距离指的是什么距离,一张图片会有多个监测点,这个距离对于某一个监测点的话,那其他监测点的测温数据就不准确了吧
是的,设置的参数距离只能针对全图而言,多个监测点的话,建议运行多次分别获取校正结果,以获取准确的温度
参数距离指的是红外探测器(相机)与待测温目标的距离(单位:米)
12345下一页
取消 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表