Evilxs 2023-03-07 09:32 采纳率: 100%
浏览 74
已结题

ENVI实现热成像与可见光图像融合

img


温度点生成的图像与可见光配准是不是可以理解为拍的热成像与可见光的配准
在ENVI里波段叠加和图像融合怎么实现以及生成带温度值的灰度图像

  • 写回答

6条回答 默认 最新

  • 极客智能体-在线 2023-03-07 18:27
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    热成像与可见光图像融合温度点生成的图像与可见光配准在ENVI中一般可以通过以下步骤实现:

    1. 将热成像图像和可见光图像导入ENVI软件中,并进行配准。一般可使用ENVI中的图像配准工具实现。配准后,两个图像可以经过坐标变换实现重合。

    2. 对热成像图像进行温度点生成,即根据热成像图像中每个像素的温度值,在对应的位置生成一个灰度值与温度呈线性关系的灰度点,并将其添加到热成像图像中。

    3. 将热成像图像和可见光图像进行波段叠加,可以实现两幅图像的有机融合。ENVI中提供了多种波段叠加方法,如简单加权平均法,比例混合法等。

    4. 对波段叠加后的图像进行温度色彩表设定,可以生成带温度值的灰度图像。ENVI中提供了多种色彩表,如自定义色彩表,渐变色彩表等。

    下面是可能的Python代码实现:

    from spectral import *
    import numpy as np
    
    # 导入热成像和可见光图像
    thermal_image = envi.open('thermal_image.hdr', 'thermal_image.raw')
    visible_image = envi.open('visible_image.hdr', 'visible_image.raw')
    
    # 图像配准
    thermal_image = thermal_image[visible_image.geo].astype(np.float32)
    
    # 获取温度点坐标和温度值
    thermal_data = thermal_image.load()
    temp_points = []
    for i in range(thermal_image.shape[0]):
        for j in range(thermal_image.shape[1]):
            temp = thermal_data[i, j]
            if temp != 0:
                temp_points.append([i, j, temp])
    
    # 在热成像图像中添加温度点
    for point in temp_points:
        i, j, temp = point
        thermal_data[int(i), int(j)] = temp
    
    # 波段叠加
    merged_image = thermal_image + visible_image
    
    # 温度色彩表设定
    merged_image.set_display_mode('overlay')
    merged_image.set_colormap_colors(['black', 'red', 'yellow', 'white'])
    merged_image.set_colormap_range(0, 100)
    
    # 显示图像
    view = imshow(merged_image)
    

    这段代码实现了热成像图像和可见光图像的配准,温度点的生成,波段叠加和温度色彩表设定,并通过spectral库的imshow函数显示出生成的灰度图像。其中,'thermal_image.hdr'和'visible_image.hdr'是ENVI格式的图像文件,代码中读入并进行相应的处理。波段叠加和温度色彩表设定则可以通过设置ENVI对象的属性实现。
    如果我的回答解决了您的问题,请采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 3月16日
  • 已采纳回答 3月8日
  • 创建了问题 3月7日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效