将一个归一化的分数以热图的形式显示出来,分数高的地方颜色深,分数小的地方颜色浅
注意:使用单一颜色无法实现这种渐变过程
将单通道的0-1之间的score值映射到三通道的颜色空间
原料- 一个单通道的score矩阵
- 颜色空间列表,通过
matplotlib.pyplot.get_cmap
获得
matplotlib.pyplot
、numpy
、cv2
、PIL.Image
常用的画法还有:plt.scatter
,可直接对score进行映射显示
可选:flag
, prism
,ocean
, gist_earth
, terrain
, gist_stern
,gnuplot,CMRmap
,gnuplot2
,cubehelix
,brg
,hsv
,gist_rainbow
,rainbow
,jet
,nipy_spectral
,nipy_spectral
,gist_ncar
.
可选:Greys
,Purples
, Blues
,Greens
,Oranges
,Reds
,YIOrBr
,YIOrRd
,PuRd
,RdPu
,GnPu
,PuBu
,YIGnBu
,PuBuGn
,BuGn
,YIGn
,
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
的用法自行查询
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)