注意:本贴主要来自网络搜集,自己做了一些修改,原作者链接:https://blog.csdn.net/guduruyu/article/details/60868501

热力图(Heat_Map)示意图


热力图可以高亮显示所关注区域中的数据所占比重情况,红色是占比最高,蓝色是占比最低。热力图以其好看、易于理解的可视化格式在CNN网络中广泛被用来分析特征分布情况。

彩色映射

如上图所示,上图按照灰度的高低将灰度图映射成彩色图,这个过程称为伪彩色映射表,即colormap,或color bar。

  1. 内嵌的colormaps
    python的matplotlib模块内嵌了很多常用的colormaps,将colormaps绘制的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt# Have colormaps separated into categories:
# http://matplotlib.org/examples/color/colormaps_reference.htmlcmaps = [('Perceptually Uniform Sequential',['viridis', 'inferno', 'plasma', 'magma']),('Sequential',     ['Blues', 'BuGn', 'BuPu','GnBu', 'Greens', 'Greys', 'Oranges', 'OrRd','PuBu', 'PuBuGn', 'PuRd', 'Purples', 'RdPu','Reds', 'YlGn', 'YlGnBu', 'YlOrBr', 'YlOrRd']),('Sequential (2)', ['afmhot', 'autumn', 'bone', 'cool','copper', 'gist_heat', 'gray', 'hot','pink', 'spring', 'summer', 'winter']),('Diverging',      ['BrBG', 'bwr', 'coolwarm', 'PiYG', 'PRGn', 'PuOr','RdBu', 'RdGy', 'RdYlBu', 'RdYlGn', 'Spectral','seismic']),('Qualitative',    ['Accent', 'Dark2', 'Paired', 'Pastel1','Pastel2', 'Set1', 'Set2', 'Set3']),('Miscellaneous',  ['gist_earth', 'terrain', 'ocean', 'gist_stern','brg', 'CMRmap', 'cubehelix','gnuplot', 'gnuplot2', 'gist_ncar','nipy_spectral', 'jet', 'rainbow','gist_rainbow', 'hsv', 'flag', 'prism'])]nrows = max(len(cmap_list) for cmap_category, cmap_list in cmaps)
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))def plot_color_gradients(cmap_category, cmap_list):fig, axes = plt.subplots(nrows=nrows)fig.subplots_adjust(top=0.95, bottom=0.01, left=0.2, right=0.99)axes[0].set_title(cmap_category + ' colormaps', fontsize=14)for ax, name in zip(axes, cmap_list):ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(name))pos = list(ax.get_position().bounds)x_text = pos[0] - 0.01y_text = pos[1] + pos[3]/2.fig.text(x_text, y_text, name, va='center', ha='right', fontsize=10)# Turn off *all* ticks & spines, not just the ones with colormaps.for ax in axes:ax.set_axis_off()for cmap_category, cmap_list in cmaps:plot_color_gradients(cmap_category, cmap_list)plt.show()

输出结果如下所示:


2. 获取colormap

以获取最常用的jet映射表为例,我们可以使用如下代码分别获取整型和浮点型的jet map,并将其保存在txt文件中:

import numpy as np
from matplotlib import cm# 获取cmp彩色映射图
def get_jet():colormap_int = np.zeros((256, 3), np.uint8)colormap_float = np.zeros((256, 3), np.float)for i in range(0, 256, 1):colormap_float[i, 0] = cm.jet(i)[0]colormap_float[i, 1] = cm.jet(i)[1]colormap_float[i, 2] = cm.jet(i)[2]colormap_int[i, 0] = np.int_(np.round(cm.jet(i)[0] * 255.0))colormap_int[i, 1] = np.int_(np.round(cm.jet(i)[1] * 255.0))colormap_int[i, 2] = np.int_(np.round(cm.jet(i)[2] * 255.0))np.savetxt("jet_float.txt", colormap_float, fmt = "%f", delimiter = ' ', newline = '\n')np.savetxt("jet_int.txt", colormap_int, fmt = "%d", delimiter = ' ', newline = '\n')print(colormap_int)return
if __name__ == "__main__":get_jet()

获取其他种类的colormap与之类似:

def get_spectral():colormap_int = np.zeros((256, 3), np.uint8)colormap_float = np.zeros((256, 3), np.float)for i in range(0, 256, 1):colormap_float[i, 0] = cm.spectral(i)[0]colormap_float[i, 1] = cm.spectral(i)[1]colormap_float[i, 2] = cm.spectral(i)[2]colormap_int[i, 0] = np.int_(np.round(cm.spectral(i)[0] * 255.0))colormap_int[i, 1] = np.int_(np.round(cm.spectral(i)[1] * 255.0))colormap_int[i, 2] = np.int_(np.round(cm.spectral(i)[2] * 255.0))np.savetxt("spectral_float.txt", colormap_float, fmt = "%f", delimiter = ' ', newline = '\n')np.savetxt("spectral_int.txt", colormap_int, fmt = "%d", delimiter = ' ', newline = '\n')print(colormap_int)return

3. 伪彩映射示例

from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
import cv2# 将所绘制图映射到热力图
def gray2color(gray_array, color_map):''':param gray_array: 必须为二维numpy_narray矩阵:param color_map: 保存的cmp彩色映射图:return: 返回映射后的热力图(heat_map)'''rows, cols = gray_array.shapecolor_array = np.zeros((rows, cols, 3), np.uint8)for i in range(0, rows):for j in range(0, cols):color_array[i, j] = color_map[gray_array[i, j]]# color_image = Image.fromarray(color_array)return color_array# the path of jet_map
jet_map = np.loadtxt('/home/alfred/fromlinux/objectTracking/code/NoOfficialCode/SiamRPN-PyTorch_36_star/jet_int.txt', dtype=np.int)# numpy narray
picture = cv2.imread('/home/alfred/fromlinux/objectTracking/code/NoOfficialCode/SiamRPN-PyTorch_36_star/0020.jpg')  # cv2.imread读入的图片已经是numpy narray形式
gray_picture = cv2.cvtColor(picture, cv2.COLOR_RGB2GRAY)  # 转换成灰度图# get the heat_map
gray_to_color = gray2color(gray_picture, jet_map)# draw picture
plt.figure()
plt.subplot(121)
plt.imshow(gray_picture, cmap='gray')plt.subplot(122)
plt.imshow(gray_to_color)
plt.show()

示例结果:

CNN网络中的小工具——绘制热力图(Heat_Map)相关推荐

  1. CNN网络中的 1 x 1 卷积是什么?

    上面是一个 1x1 卷积核的输出示意图, 如果是 K 个1x1 卷积核,那么 结果就是 将通道数由 D 变为 K 降维或升维 特征通道数变化: 256 -> 64 -> 256 http: ...

  2. ps自定义形状工具_ps中借助形状工具绘制卡通图

    绘制选区和矢量图形 学会使用矢量图形构造生活中的图形,用简单的圆角矩形.半圆.三角形.以及矩形进行图形的绘制和拼接,主要要掌握图形的剪切和自由变换,以拼接出美丽的几何图形. 快捷键小课堂 前景色颜色填 ...

  3. CNN网络中卷积层的正向传播与反向传播理解

    1. 基础理论 1.1 网络结构梳理 在CNN网络模型是建立在传统神经网络结构上的,对于一个传统的神经网络其结构是这样的: 从上面可以看出,其模型是全连接的.若是使用一幅512*512大小的图像作为输 ...

  4. 复杂网络中的小世界效应是什么东西?

    网络中,节点数量巨大,但是平均距离却小的惊人. 这就是所谓的  小世界  效应:

  5. opencv小工具-绘制resnet50热力图和灰度图-伪彩色映射

    在图像处理,尤其是医学图像处理的过程中,我们经常会遇到将灰度图映射成彩色图的情形,如将灰度图根据灰度的高低映射成彩虹色图.这个过程我们通常将之称为伪彩映射,伪彩映射的关键在于找到合适的彩色映射表,即c ...

  6. 深藏不露,挖掘4种大脑网络中的管理工具

    走过了百余年发展历程的管理理论与实践,自身体系正在不断深化与创新,其中一个重要领域是对脑神经科学成果的利用. 虽然柯洁以0:3败给了AlphaGo,虽然人工智能可以完成一些人类所不能及的工作,但是人类 ...

  7. python如何画出多个独立的图片_如何使用python语言中的可视化工具绘制多个图

    在使用的matplotlib第三方包的过程中,可以在画布上绘制一个图形之外,还可以绘制多个图形,根据分布来构成图形.下面利用具体的实例说明如何实现,操作如下: 工具/原料 python 截图工具 方法 ...

  8. 添加游戏到游戏浏览器中的小工具

    在Vista和Windows 7中都有一个游戏浏览器,这个游戏浏览器界面美观,功能强大,也就是那传说中的很好很强大啦.但是就是往里面加游戏不方便,一来要那些支持GDF信息的游戏才能往里面添加,二来当系 ...

  9. 将搜狗浏览器中收藏夹导入到IE中的小工具

    测试了,能用.可以将搜狗中的收藏夹,转到IE中,然后可以将IE收藏夹导入到任何一种浏览器中. 工具下载:http://download.csdn.net/source/2634825

最新文章

  1. java面向对象 接口和实现类_类实现java面向对象上:接口
  2. spss回归分析_回归分析中的简单斜率检验:用SPSS或jamovi实现
  3. js封装函数_JavaScript基础-如何封装函数来改变元素的位置
  4. python输出与删除某行或某列
  5. 高倍数泡沫装置PHP_泡沫灭火系统,了解这几点就好
  6. 进程篇—进程整理(转)
  7. 限制用户不能删除SharePoint列表中的条目(项目)
  8. 网络编程遇到的一个错误?
  9. NEFU计算机组成原理课程设计之乘法器
  10. base64图片上传解析不了问题
  11. 计算机英语词汇音频,[听单词] 计算机专业英语词汇音频84,计算机英语单词MP3
  12. Cardboard Unity SDK Reference 翻译版
  13. centos7.6下载地址
  14. iOS OC10_Block
  15. 利用NSLOOKUP命令进行DNS层次查询
  16. linux IO引脚唤醒深度休眠,驱动修改步骤
  17. 程序设计基础c语言版大作业,程序设计基础(C语言版)
  18. 第三章 matlab学习入门之编程基础
  19. web自动化测试入门篇04——selenium+python基础方法封装
  20. Xenu-web开发死链接检測工具应用

热门文章

  1. [附源码]SSM计算机毕业设计高校创新创业服务平台JAVA
  2. 西澳推出两大创新型住宅太阳能加存储项目
  3. 浏览器集成德卡T10读卡器
  4. (BAT批处理)用文件名批量创建文件夹,然后将文件移动进去的批处理命令?
  5. PotPlayer 绿色版下载安装、直播 CCTV
  6. 如何打造智能化舆情研判预警系统
  7. linux内核带usb驱动,Linux3.4内核USB驱动的移植
  8. 什么是频谱分析仪?主要功能和应用领域有哪些?主要品牌TFN FMT650的详情介绍
  9. 光盘加密大师轻松为光盘加密
  10. 套料软件XSuperNEST产品及成功因素介绍