国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

python 繪制場景熱力圖的示例

瀏覽:4日期:2022-07-10 10:49:29

我們在做諸如人群密集度等可視化的時候,可能會考慮使用熱力圖,在Python中能很方便地繪制熱力圖。

下面以識別圖片中的行人,并繪制熱力圖為例進(jìn)行講解。

步驟1:首先識別圖像中的人,得到bounding box的中心坐標(biāo)。識別方法多樣化,坐標(biāo)也可以自己定義。 步驟2:將所有中心坐標(biāo)放入一個list類型的變量data中,即data = [[x1,y1] [x2,y2] …] 步驟3:繪制熱力圖,并將熱力圖加權(quán)疊加到原圖上。

需要import的包:

import cv2import numpy as npfrom PIL import Imagefrom pyheatmap.heatmap import HeatMapimport matplotlib.pyplot as plt

根據(jù)識別的結(jié)果得到data的值,傳入以下apply_heatmap(image,data)繪制熱力圖;

def apply_heatmap(image,data): ’’’image是原圖,data是坐標(biāo)’’’ ’’’創(chuàng)建一個新的與原圖大小一致的圖像,color為0背景為黑色。這里這樣做是因為在繪制熱力圖的時候如果不選擇背景圖,畫出來的圖與原圖大小不一致(根據(jù)點的坐標(biāo)來的),導(dǎo)致無法對熱力圖和原圖進(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)行實驗:

原圖如下:

python 繪制場景熱力圖的示例

結(jié)果如下:

python 繪制場景熱力圖的示例

可視化效果可以調(diào)節(jié),如:通過調(diào)節(jié)hm.heatmap(base=background, r = 100)中的r即可調(diào)節(jié)熱力點的半徑大小。

以上就是python 繪制場景熱力圖的示例的詳細(xì)內(nèi)容,更多關(guān)于python 繪制熱力圖的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 瑞昌市| 瑞金市| 太谷县| 辽阳市| 黄浦区| 新泰市| 宜兰县| 洱源县| 咸丰县| 文化| 景东| 南郑县| 瑞昌市| 黄龙县| 阳原县| 乐安县| 兴隆县| 疏勒县| 阳泉市| 东乌珠穆沁旗| 项城市| 牟定县| 延津县| 宁武县| 社旗县| 德惠市| 吴忠市| 思茅市| 渝北区| 永泰县| 江川县| 鄂托克前旗| 兴城市| 青州市| 三江| 栾城县| 辽阳市| 珲春市| 龙岩市| 林芝县| 禄劝|