我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图。

下面以识别图片中的行人,并绘制热力图为例进行讲解。

步骤1:首先识别图像中的人,得到bounding box的中心坐标。识别方法多样化,坐标也可以自己定义。

步骤2:将所有中心坐标放入一个list类型的变量data中,即data = [[x1,y1] [x2,y2] …]

步骤3:绘制热力图,并将热力图加权叠加到原图上。

需要import的包:

import cv2

import numpy as np

from PIL import Image

from pyheatmap.heatmap import HeatMap

import matplotlib.pyplot as plt

根据识别的结果得到data的值,传入以下apply_heatmap(image,data)绘制热力图;

def apply_heatmap(image,data):

'''image是原图,data是坐标'''

'''创建一个新的与原图大小一致的图像,color为0背景为黑色。这里这样做是因为在绘制热力图的时候如果不选择背景图,画出来的图与原图大小不一致(根据点的坐标来的),导致无法对热力图和原图进行加权叠加,因此,这里我新建了一张背景图。'''

background = Image.new("RGB", (image.shape[1], image.shape[0]), color=0)

# 开始绘制热度图

hm = HeatMap(data)

hit_img = hm.heatmap(base=background, r = 100) # background为背景图片,r是半径,默认为10

# ~ plt.figure()

# ~ plt.imshow(hit_img)

# ~ plt.show()

#hit_img.save('out_' + image_name + '.jpeg')

hit_img = cv2.cvtColor(np.asarray(hit_img),cv2.COLOR_RGB2BGR)#Image格式转换成cv2格式

overlay = image.copy()

alpha = 0.5 # 设置覆盖图片的透明度

cv2.rectangle(overlay, (0, 0), (image.shape[1], image.shape[0]), (255, 0, 0), -1) # 设置蓝色为热度图基本色蓝色

image = cv2.addWeighted(overlay, alpha, image, 1-alpha, 0) # 将背景热度图覆盖到原图

image = cv2.addWeighted(hit_img, alpha, image, 1-alpha, 0) # 将热度图覆盖到原图

网站上随意找一张图片进行实验:

原图如下:

结果如下:

可视化效果可以调节,如:通过调节hm.heatmap(base=background, r = 100)中的r即可调节热力点的半径大小。

以上就是python 绘制场景热力图的示例的详细内容,更多关于python 绘制热力图的资料请关注脚本之家其它相关文章!

python根据经纬度画热力图_python 绘制场景热力图的示例相关推荐

  1. python热力图背景_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  2. python分析数据走势图_python绘制趋势图的示例

    import matplotlib.pyplot as plt #plt用于显示图片 import matplotlib.image as mping #mping用于读取图片 import date ...

  3. python的turtle画小人_Python绘制可爱的卡通人物 | 【turtle使用】

    Turtle库 简介 什么是Turtle 首先,turtle库是一个点线面的简单图像库,能够完成一些比较简单的几何图像可视化.它就像一个小乌龟,在一个横轴为x.纵轴为y的坐标系原点,(0,0)位置开始 ...

  4. python画热力图_Python中绘制场景热力图

    原博文 2019-08-06 15:39 − 我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步 ...

  5. python制作热力图_Python中绘制场景热力图

    原文地址:https://www.cnblogs.com/taotingz/p/11309333.html 我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热 ...

  6. 用python海龟制图画花瓣_Python竟能画这么漂亮的花,帅呆了(代码分享)

    阅读本文大概需要3分钟 关于函数和模块讲了这么久,我一直想用一个好玩有趣的小例子来总结一下,同时也作为实战练习一下. 趣味编程其实是最好的学习途径,回想十几年前我刚毕业的时候,第一份工作就给手机上写a ...

  7. python中formatter的用法_Python pyplot.FuncFormatter方法代码示例

    本文整理汇总了Python中matplotlib.pyplot.FuncFormatter方法的典型用法代码示例.如果您正苦于以下问题:Python pyplot.FuncFormatter方法的具体 ...

  8. python中font的用法_Python font.nametofont方法代码示例

    本文整理汇总了Python中tkinter.font.nametofont方法的典型用法代码示例.如果您正苦于以下问题:Python font.nametofont方法的具体用法?Python fon ...

  9. python用turtle画彩虹_Python语言,绘制彩虹场景

    在生活中,我们总会遇到各种各样的困难,我们都能听到鼓励我们的话,风雨之后才能见彩虹! 今天就和大家分享一下,使用编程代码去绘制我们心中的彩虹! 使用Python语言编程,来绘制彩虹的程序在下面! 彩虹 ...

最新文章

  1. 如何用 ndctl/ipmctl 管理工具 配置不同访问模式的pmem设备
  2. AI的使用场景破冰开拓商业服务
  3. 突破磁盘低级检测实现文件隐藏
  4. 启动文件需要做的工作
  5. 新消费风口再“热闹”,红利依然握在伊利、康师傅们手里
  6. 【题解】 [HEOI2016]排序题解 (二分答案,线段树)
  7. matlab生成有向网络,matlab ode45和矩阵生成有向网络图
  8. 递归调用方法时栈内存是如何变化的?(使用内存图演示递归调用过程)
  9. 饭卡可以用水冲洗吗_薄壁不锈钢水管真的可以满足大众用水健康管道的要求吗?...
  10. list.size为1但是内容为null
  11. delphi控件切图界面闪烁_先本设计教你跳过UI小程序的七个坑
  12. 服务器系统重置,云服务器系统重置
  13. 【CSS3】---only-child选择器+only-of-type选择器
  14. Zookeeper知识
  15. iis 下的 selfssl
  16. Aspose.Pdf 转图片的正确姿势
  17. c语言中char转换为int的问题
  18. outlook邮件路径更改_如何更改Outlook的新邮件警报声音
  19. 股票涨或跌为什么?看懂本质,才能顺势而为!
  20. 数据结构与算法碎碎念之运用递归处理问题

热门文章

  1. linux pipenv运行,pipenv快速入门
  2. FlatList使用示例包含RefreshControl
  3. 如何用python制作五角星
  4. 计算机图形高级软,高级计算机图形学
  5. Js之事件类型-鼠标事件
  6. 华为畅享20se和oppok7x哪个好 oppok7x和华为畅享20se区别
  7. mapState映射
  8. 程序人生 | (7) “新一五计划”(博客导航)
  9. 三千计划 5月1日(1)
  10. css自定义字体的使用