python分割绘制热力图
时间: 2025-07-12 08:53:43 浏览: 1
### 使用Python进行分割并绘制热力图
为了实现图像分割后的热力图绘制,可以采用`seaborn`库中的`heatmap`函数来创建热力图。对于特定区域的兴趣点分析,先通过OpenCV读取图片,并裁剪出感兴趣的区域[^2]。
下面是一个完整的例子,该例子不仅展示了如何加载和处理图像,还说明了怎样利用`matplotlib`的颜色映射功能以及`cv2`来进行色彩转换,最终保存带有热力效果的新图像:
```python
import numpy as np
import cv2
import matplotlib.pyplot as plt
from pathlib import Path
def create_heatmap(image_path, output_folder="output", cmap='inferno'):
"""
创建指定路径下图像的热力图
参数:
image_path (str): 输入图像文件路径.
output_folder (str): 输出目录名称,默认为'output'.
cmap (str): Matplotlib colormap 名称,默认为'inferno'.
返回:
None
"""
# 确定输出文件夹存在与否,不存在则创建
Path(output_folder).mkdir(parents=True, exist_ok=True)
img = cv2.imread(image_path, 0) # 以灰度模式读入图像
if img is not None:
# 应用自定义ROI(感兴趣区)
cropped_img = img[:, 1000:990*2]
# 获取颜色映射表并将像素值转化为对应的颜色
colormap = plt.get_cmap(cmap)
heatmap_array = (colormap(cropped_img.astype(float)) * 2**16).astype(np.uint16)[..., :3]
# 将RGB转成BGR格式以便于后续操作
heatmap_bgr = cv2.cvtColor(heatmap_array, cv2.COLOR_RGB2BGR)
filename = Path(image_path).stem + "_heatmap.png"
save_path = f"{output_folder}/{filename}"
print(save_path)
cv2.imwrite(save_path, heatmap_bgr)
if __name__ == "__main__":
images = ["path/to/image.jpg"] # 替换为实际图片列表
for im in images:
create_heatmap(im)
```
此脚本会遍历给定的一系列图片,在每个图片上应用相同的预设变换——即截取固定位置的一个矩形子集作为新的关注焦点;接着基于选定的颜色方案生成伪彩色版本;最后将这些经过特殊渲染的结果存储到磁盘上的新文件里。
如果目标是从更复杂的场景中提取特征或执行分类任务,则可能需要用到深度学习框架配合专门设计好的模型架构,比如在语义分割领域常用的U-Net等网络结构。此时可以通过计算激活层响应强度分布情况得到更加精确的目标对象定位信息,并以此为基础构建高质量的热力图表示形式[^3]。
阅读全文
相关推荐


















