You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从热成像图像中检测温度热点并标记高于阈值的区域

热成像超温区域标记实现方案

热成像示例图

实现逻辑

热成像图像的像素值(无论灰度还是伪彩格式)都和实际温度呈固定映射关系,我们只要先确定温度-像素的对应规则,筛选出高于阈值的像素点,再提取连通区域做可视化标记即可。

基于Python+OpenCV的实现代码

import cv2
import numpy as np

# 1. 加载热成像图像
img = cv2.imread("thermal_input.png")
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 2. 配置温度映射参数(需根据你的热成像设备实际参数修改)
min_temp = 20   # 图像最低灰度值对应的实际温度(单位:℃)
max_temp = 120  # 图像最高灰度值对应的实际温度(单位:℃)
temp_thresh = 70 # 设定的超温阈值(单位:℃)
# 计算阈值对应的灰度值
gray_thresh = int((temp_thresh - min_temp) / (max_temp - min_temp) * 255)

# 3. 生成超温区域掩码
ret, mask = cv2.threshold(gray_img, gray_thresh, 255, cv2.THRESH_BINARY)

# 4. 提取超温区域的连通轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 5. 在原图上标记超温区域
overlay = img.copy()
for cnt in contours:
    # 获取超温区域外接矩形
    x, y, w, h = cv2.boundingRect(cnt)
    # 半透明红色填充超温区域
    cv2.rectangle(overlay, (x, y), (x+w, y+h), (0, 0, 255), -1)
    # 添加超温文字标注
    cv2.putText(img, f">{temp_thresh}℃", (x, y-5), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (0,0,255), 1)

# 叠加半透明标记层
alpha = 0.3
result_img = cv2.addWeighted(overlay, alpha, img, 1-alpha, 0)

# 输出标记完成的结果图
cv2.imwrite("thermal_marked_result.png", result_img)

适配说明

  • 若你的热成像设备直接输出16位原始温度数据,可直接读取每个像素的温度值做阈值判断,不需要做灰度-温度换算
  • 若输入是RGB伪彩热成像图,需要提前获取设备的色阶-温度映射表,先把RGB值转回对应温度再做阈值判断
  • 标记样式可自行调整,比如换成矩形边框、轮廓描边、其他颜色填充等

内容的提问来源于stack exchange,提问作者Imran_Say

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:09:02