python 繪制場(chǎng)景熱力圖的示例
我們?cè)谧鲋T如人群密集度等可視化的時(shí)候,可能會(huì)考慮使用熱力圖,在Python中能很方便地繪制熱力圖。
下面以識(shí)別圖片中的行人,并繪制熱力圖為例進(jìn)行講解。
- 步驟1:首先識(shí)別圖像中的人,得到bounding box的中心坐標(biāo)。識(shí)別方法多樣化,坐標(biāo)也可以自己定義。
- 步驟2:將所有中心坐標(biāo)放入一個(gè)list類型的變量data中,即data = [[x1,y1] [x2,y2] …]
- 步驟3:繪制熱力圖,并將熱力圖加權(quán)疊加到原圖上。
需要import的包:
import cv2 import numpy as np from PIL import Image from pyheatmap.heatmap import HeatMap import matplotlib.pyplot as plt
根據(jù)識(shí)別的結(jié)果得到data的值,傳入以下apply_heatmap(image,data)繪制熱力圖;
def apply_heatmap(image,data): '''image是原圖,data是坐標(biāo)''' '''創(chuàng)建一個(gè)新的與原圖大小一致的圖像,color為0背景為黑色。這里這樣做是因?yàn)樵诶L制熱力圖的時(shí)候如果不選擇背景圖,畫出來(lái)的圖與原圖大小不一致(根據(jù)點(diǎn)的坐標(biāo)來(lái)的),導(dǎo)致無(wú)法對(duì)熱力圖和原圖進(jìn)行加權(quán)疊加,因此,這里我新建了一張背景圖。''' 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是半徑,默認(rèn)為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格式轉(zhuǎn)換成cv2格式 overlay = image.copy() alpha = 0.5 # 設(shè)置覆蓋圖片的透明度 cv2.rectangle(overlay, (0, 0), (image.shape[1], image.shape[0]), (255, 0, 0), -1) # 設(shè)置藍(lán)色為熱度圖基本色藍(lán)色 image = cv2.addWeighted(overlay, alpha, image, 1-alpha, 0) # 將背景熱度圖覆蓋到原圖 image = cv2.addWeighted(hit_img, alpha, image, 1-alpha, 0) # 將熱度圖覆蓋到原圖
網(wǎng)站上隨意找一張圖片進(jìn)行實(shí)驗(yàn):
原圖如下:
結(jié)果如下:
可視化效果可以調(diào)節(jié),如:通過(guò)調(diào)節(jié)hm.heatmap(base=background, r = 100)中的r即可調(diào)節(jié)熱力點(diǎn)的半徑大小。
以上就是python 繪制場(chǎng)景熱力圖的示例的詳細(xì)內(nèi)容,更多關(guān)于python 繪制熱力圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
從多個(gè)tfrecord文件中無(wú)限讀取文件的例子
今天小編就為大家分享一篇從多個(gè)tfrecord文件中無(wú)限讀取文件的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python+PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器
這篇文章主要為大家詳細(xì)介紹了如何利用Python和PyQt5實(shí)現(xiàn)自動(dòng)點(diǎn)擊神器,旨在解決重復(fù)性的點(diǎn)擊工作,解放雙手,具有及時(shí)性和準(zhǔn)確性,需要的可以參考下2024-01-01Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法
Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫(kù)中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會(huì)出現(xiàn)報(bào)錯(cuò),接下來(lái)通過(guò)本文給大家介紹Ubuntu16.04 安裝python的問題,一起看看吧2021-09-09手把手教你將Flask應(yīng)用封裝成Docker服務(wù)的實(shí)現(xiàn)
這篇文章主要介紹了手把手教你將Flask應(yīng)用封裝成Docker服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib
今天小編就為大家分享一篇關(guān)于Python編程深度學(xué)習(xí)繪圖庫(kù)之matplotlib,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程
這篇文章主要介紹了在Python中使用zlib模塊進(jìn)行數(shù)據(jù)壓縮的教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-06-06Python字符串的創(chuàng)建和駐留機(jī)制詳解
字符串駐留是一種在內(nèi)存中僅保存一份相同且不可變字符串的方法,本文重點(diǎn)給大家介紹Python字符串的創(chuàng)建和駐留機(jī)制,感興趣的朋友跟隨小編一起看看吧2022-02-02