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

如何将热力图RGB颜色线性映射回原始刻度值(已知基准色对应值)

从热力图RGB颜色反推原始值的方法

先处理特殊情况

  • 若方块RGB为(255,255,255)(或接近纯白),直接标记为NaN,无需后续计算。

核心逻辑

已知颜色与数值为线性映射,分为两段独立渐变区间:

  1. 蓝色(-100)→ 黑色(0):仅蓝色通道从255线性降至0
  2. 黑色(0)→ 红色(+10):仅红色通道从0线性升至255

实际提取的RGB可能存在轻微偏差,按以下步骤计算:

步骤1:判断颜色所属渐变区间

  • 若蓝色通道(B)数值远大于红、绿通道(B > R且B > G),归为蓝→黑区间
  • 若红色通道(R)数值远大于绿、蓝通道(R > G且R > B),归为黑→红区间
  • 若RGB接近(0,0,0),直接对应数值0

步骤2:线性计算对应数值

蓝→黑区间(-100 ~ 0)

利用蓝色通道的相对占比计算:

value = (B / 255) * (-100)

示例:RGB(0,0,127) → (127/255)*(-100) ≈ -49.8,近似-50

黑→红区间(0 ~ +10)

利用红色通道的相对占比计算:

value = (R / 255) * 10

示例:RGB(127,0,0) → (127/255)*10 ≈ 4.98,近似5

步骤3:非理想颜色的近似修正

若提取的RGB并非单通道渐变(比如蓝→黑区间存在少量R/G值),可通过颜色距离优化:

  1. 计算当前RGB到三个锚点的欧氏距离:
    • 到蓝点(0,0,255):d_blue = sqrt(R² + G² + (B-255)²)
    • 到黑点(0,0,0):d_black = sqrt(R² + G² + B²)
    • 到红点(255,0,0):d_red = sqrt((R-255)² + G² + B²)
  2. 若d_blue + d_black最小,归为蓝→黑区间,用B通道计算;若d_black + d_red最小,归为黑→红区间,用R通道计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 21:55:58