温度值与灰阶值转换公式解析
一、温度值转换公式
1. 数学表达式
\(\text{温度}(℃) = \frac{\text{OutputValue}}{4 \times 16} - 273.15 = \frac{\text{OutputValue}}{64} - 273.15\)
2. 参数说明
|
参数 |
定义 |
|
OutputValue |
传感器原始输出值(16 位数据,高 14 位有效) |
|
除以 4 |
提取高 14 位有效数据(14 位数据范围:0~16383,对应 16 位数据的 0x0000~0x3FFF) |
|
除以 16 |
将数值转换为温度分辨率(例如:16 对应 0.0625℃/LSB) |
|
减 273.15 |
转换为摄氏度(从开尔文温度转换) |
3. 计算示例
假设 OutputValue = 0x2000(十进制 8192):
\(\text{温度}(℃) = \frac{8192}{64} - 273.15 = 128 - 273.15 = -145.15℃\)
二、灰阶值映射方法
1. 线性映射公式
\(Y = 255 \times \frac{T - T_{\text{min}}}{T_{\text{max}} - T_{\text{min}}}\)
2. 关键参数
|
参数 |
定义 |
|
T |
目标像素温度值(℃) |
|
Tmin |
感兴趣温度范围最小值(建议通过直方图统计获取) |
|
Tmax |
感兴趣温度范围最大值(建议通过直方图统计获取) |
|
Y |
输出灰阶值(0~255,0 = 黑色,255 = 白色) |
3. 处理流程
4. 非线性映射(伽马校正)
当需要增强对比度时,可引入伽马系数 γ:
\(Y = 255 \times \left( \frac{T - T_{\text{min}}}{T_{\text{max}} - T_{\text{min}}} \right)^\gamma\)
常用 γ 值:0.5(暗部增强)或 2.2(符合人眼视觉特性)。
三、实际应用注意事项
- 数据截断处理
-
- 当 T < Tmin时,Y=0;当 T > Tmax时,Y=255
-
- 建议设置温度饱和阈值防止溢出
- 分辨率匹配
-
- 确保原始数据分辨率(像素数)与输出灰阶图像一致
- 温度定标
-
- 传感器需定期校准以保证 Tmin/Tmax准确性
- 示例代码片段(Python)
def raw_to_temp(raw_value: int) -> float:
return raw_value / 64.0 - 273.15
def temp_to_gray(temp: float, t_min: float, t_max: float) -> int:
if temp < t_min:
return 0
elif temp > t_max:
return 255
else:
return int(255 * (temp - t_min) / (t_max - t_min))
四、典型应用场景
|
场景 |
映射策略 |
说明 |
|
工业检测 |
线性映射 + 固定温窗 |
关注特定温度区间 |
|
安防监控 |
非线性映射 + 自动增益 |
增强边缘温度对比度 |
|
医疗诊断 |
伽马校正 + 伪彩色叠加 |
符合医学图像显示标准 |
477

被折叠的 条评论
为什么被折叠?



