python heatmap画法

python heatmap画法,第1张

任务描述

将一个归一化的分数以热图的形式显示出来,分数高的地方颜色深,分数小的地方颜色浅
注意:使用单一颜色无法实现这种渐变过程

原理

将单通道的0-1之间的score值映射到三通道的颜色空间

原料
  1. 一个单通道的score矩阵
  2. 颜色空间列表,通过matplotlib.pyplot.get_cmap获得
工具

matplotlib.pyplotnumpycv2PIL.Image
常用的画法还有:plt.scatter,可直接对score进行映射显示

颜色参考 1、Miscellaneous colormaps系列:

可选:flag, prism,ocean, gist_earth, terrain, gist_stern,gnuplot,CMRmap,gnuplot2,cubehelix,brg,hsv,gist_rainbow,rainbow,jet,nipy_spectral,nipy_spectral,gist_ncar.

2、纯色渐变系列Sequential colormaps:

可选:Greys,Purples, Blues ,Greens,Oranges,Reds,YIOrBr,YIOrRd,PuRd,RdPu,GnPu,PuBu,YIGnBu,PuBuGn,BuGn,YIGn,

使用cmap
import matplotlib.pyplot as plt
G_map=score # a ndnrray of score ,dim:N X M
G_cmap = plt.get_cmap('BuGn') #得到对应的颜色空间列表,四通道,应该包含透明通道
G_color_block = (G_cmap(G_map)*255)[:,:,:3].astype(np.uint8)#[:,:,:3] 表示进行切片,去除了透明通道

G_color_block就是映射后的颜色值,可直接使用

为了是结果更加丝滑,一般会先对score进行模糊,例如高斯模糊
overlay = cv2.GaussianBlur(overlay,tuple((patch_size * (1-overlap)).astype(int) * 2 +1),0)

cv2.GaussianBlur的用法自行查询

结果展示(未使用模糊效果)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/736460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存