大疆 禅思H20T 热红外图像转温度矩阵(步骤详细)

一,前期准备

1. 需要下载的软件

1.1 visual studio 2017

其他年份的版本也可以

1.2 Pycharm 2022

其他年份的版本也可以

1.3 DJI Thermal Analysis Tool 3

需要去大疆官网下载,下载链接:

大疆红外热分析工具3.0 - 下载中心 - DJI 大疆创新

1.2 TSDK

需要去大疆官网下载,下载链接:

DJI Thermal SDK - 下载中心 - DJI 大疆创新

2. 关于TSDK的相关官方文档预览

链接:TSDK(Thermal SDK)常见问题汇总(持续更新)-开发者-大疆社区

3. 大疆二次开发人员解答网址

如果有关于大疆产品的技术问题还可以在这个网址提问,一般24小时以内会有大疆的开发人员解答

2. 开始处理

1. 新建项目

打开visual studio 2017,新建一个项目和一个cpp文件,都命名为tsdk

1. 打开TSDK文件

 2. 打开sample文件,复制dji_irp.cpp中的代码到tsdk.cpp中

注:tsdk.cpp需要链接argagg.hpp,dirp_api.h和dirp_wrapper.h头文件以及libdirp.lib库文件,后面开始链接

 3. 在tsdk.cpp所在文件夹中创建Libs文件,在Libs文件夹中创建icn文件夹和lib文件夹

4. 将下载的TSDK中tsdk-core目录下api文件夹内的文件复制到icn文件夹中

5. 将sample\argparse目录下的文件也放入icn文件夹内;将tsdk-core/lib/windows/release_x64目录下所有.lib文件复制到lib文件夹中

 

6. visual studio 2017 界面上方选择Debug和x64然后右键tsdk项目生成

注:这里x64一定要选对,不然后面会报错

 

 生成后点击和tsdk.sln文件同个目录的x64文件

6. 打开x64\Debug,将所有.dll文件和.ini文件复制到x64\Debug文件夹下,与tsdk.exe放在一起。

 然后开始配置

7. 在tsdk项目中选择调试>tsdk调试属性>C/C++>常规中,将附加包含目录设置为icn文件夹

 注:确保界面上方的平台是活动(x64)

8. 在tsdk项目中选择调试>tsdk调试属性>连接器>常规中,将附加库目录设置为lib文件夹

9. 在tsdk项目中选择调试>tsdk调试属性>连接器>输入中,将附加依赖项设置为libdirp.lib

 这个名字手打即可

接下来开始在Pycharm中编程,最终生成存储有温度信息的矩阵

 10. 通过python代码调用tsdk.exe,批量处理热成像图片,生成存储温度信息的.raw文件。

# 通过python代码调用tsdk.exe,批量处理热成像图片,生成存储温度信息的.raw文件。
import os

tsdk = r'O:\desk\TSDK\tsdk\x64\Debug\tsdk.exe'
##tsdk.exe的储存位置
path ='O:\desk\DJI-red1/'
##拍摄的rJPG的储存位置
savepath = "O:\desk\DJI-red1/"
##处理结果的储存位置
os.makedirs(savepath, exist_ok=True)

distance = 25.0
emissivity = 0.95
humidity = 45
reflection = 51.8


##参数根据实际情况设置

def use_tsdk(tsdk, path, savepath):
    print('start')
    imgnamelist = os.listdir(path)
    for imgname in imgnamelist:
        if "T" in imgname:
            ##带T的图像是温度图像
            portion = os.path.splitext(imgname)
            coreimgname = portion[0]
            param = '-s ' + path + imgname + ' -a measure -o ' + savepath + coreimgname + '.raw' + ' --distance ' + str(
                distance) + ' --emissivity ' + str(emissivity) + ' --humidity ' + str(humidity) + '--reflection ' + str(
                reflection)
            ##选择的模式是measure输出的结果是温度信息,不是原始信息
            r_v = os.system(tsdk + ' ' + param)
            print(r_v)
            # 输出的为tsdk.exe运行的返回值


use_tsdk(tsdk, path, savepath)

11. .raw转.tif

# 将.raw文件中的值除以10之后为温度值,转为.tif文件以备后续使用。python代码
import os
#调用opencv要用import cv2,用import opencv会报错
import cv2
import numpy as np

savepath = "O:\desk\DJI-red1/"


def raw_to_tif(path, rows, cols, channels):
    print('to .tif start')
    files = os.listdir(path)
    for file in files:
        portion = os.path.splitext(file)
        if portion[1] == '.raw':
            realPath = path + file
            img = np.fromfile(realPath, dtype='uint16')
            img = img / 10  ##除10之后为温度值
            img = img.reshape(rows, cols, channels)
            fileName = portion[0] + '.tif'
            tif_fileName = os.path.join(path, fileName)
            cv2.imwrite(tif_fileName, img, (int(cv2.IMWRITE_TIFF_COMPRESSION), 1))
            os.remove(realPath)  ##delete .raw file,如有需要,可以不删除
        else:
            print(file + ' it is not .raw file')
    print('to .tif finsh')


raw_to_tif(savepath, 512, 640, 1)

12. 产生img温度矩阵

将最下面的这一行代码注释了

raw_to_tif(savepath, 512, 640, 1)
然后输入以下代码
files = os.listdir(path)
for file in files:
    portion = os.path.splitext(file)
    if portion[1] == '.raw':
        realPath = path + file
        img = np.fromfile(realPath, dtype='uint16')
        img = img / 10  ##除10之后为温度值
        img = img.reshape(512, 640, 1)
        fileName = portion[0] + '.tif'
        tif_fileName = os.path.join(path, fileName)
        cv2.imwrite(tif_fileName, img, (int(cv2.IMWRITE_TIFF_COMPRESSION), 1))
        os.remove(realPath)  ##delete .raw file,如有需要,可以不删除

 13. 运行代码,然后查看img对应的矩阵

 14. 使用DJI Thermal Analysis Tool 3查看像素点的温度,和生成的温度矩阵对比,是否有差别

         

  • 11
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
DJI Thermal SDK 是大疆成像摄像头的软件开发工具包,旨在帮助开发者实现与成像摄像头相关的功能和应用。以下是关于如何使用 DJI Thermal SDK 的教程: 第一步,下载和安装 DJI Thermal SDK:访问大疆官方网站,进入开发者页面,下载 Thermal SDK 并按照指示进行安装。 第二步,创建一个新的项目:使用开发工具(如 Android Studio)创建一个新的项目,并配置 SDK 的基本设置。确保你已经添加了 Thermal 相机 dependenciy。 第三步,初始化和连接成像摄像头:在你的项目代码中,实例化一个 DJIThermalSession 对象,并使用 connect() 方法连接到摄像头。确保你已经将设备与手机或平板电脑成功地连接。 第四步,获取成像图像:通过设置回调函数或定期轮询的方式,从成像摄像头中获取数据流或图像帧。你可以将这些图像用于进一步的处理或分析,如温度测量或成像图像显示。 第五步,实现其他功能:根据你的需求,可以使用 SDK 中的其他功能和方法来扩展你的应用程序。例如,你可以使用相机的控制方法调整图像的亮度、对比度或中心温度,或者使用图像处理方法应用滤波或增强算法。 第六步,测试和调试:在真实场景中测试你的应用程序,并根据需要进行调试和优化。确保你的应用程序能够准确地获取并处理成像图像,并满足项目的要求。 总结:使用 DJI Thermal SDK 可以帮助开发者创建与成像摄像头相关的应用程序。通过下载和安装 SDK,初始化和连接成像摄像头,获取成像图像,实现其他功能以及测试和调试,你可以成功地开发出满足需求的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值