Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何向某些图像添加数据驱动的基于位置的热图?_Python_Opencv_Python Imaging Library_Heatmap - Fatal编程技术网

Python 如何向某些图像添加数据驱动的基于位置的热图?

Python 如何向某些图像添加数据驱动的基于位置的热图?,python,opencv,python-imaging-library,heatmap,Python,Opencv,Python Imaging Library,Heatmap,我想获取一个特定非地理位置的病毒传播事件率的现有数据集,并根据一组坐标创建热图,我将为基础图像提供热图 为了做到这一点,我将拍摄一个站点的现有图像,例如下面的浣熊城: 在这一点上,我想在某些区域(如市中心、浣熊公园、城市浣熊学院)的人数增加时,在上面叠加一个类似于此的热图: 我查看了各种库,包括OpenCV和Pillow,但还没有找到合适的解决方案。我一直看到对heatmap.py的引用,但它似乎完全不受欢迎;我无法用pip安装它 如果需要,我可以链接到虚拟数据集 谢谢你的关注!这可能会让我

我想获取一个特定非地理位置的病毒传播事件率的现有数据集,并根据一组坐标创建热图,我将为基础图像提供热图

为了做到这一点,我将拍摄一个站点的现有图像,例如下面的浣熊城:

在这一点上,我想在某些区域(如市中心、浣熊公园、城市浣熊学院)的人数增加时,在上面叠加一个类似于此的热图:

我查看了各种库,包括OpenCV和Pillow,但还没有找到合适的解决方案。我一直看到对
heatmap.py
的引用,但它似乎完全不受欢迎;我无法用
pip
安装它

如果需要,我可以链接到虚拟数据集

谢谢你的关注!这可能会让我们免于即将到来的僵尸世界末日(,º-°)。

假设您在某个NumPy数组中存储了2D(僵尸攻击)数据,我将使用标准化数据生成热图,参见。然后,我将热图与(浣熊城)图像混合。因此,在colormap中也有一些alpha透明度会很好,cf

下面是一些代码:

导入cv2
从matplotlib.colors导入ListedColormap#自定义colormap所需
从matplotlib.pyplot import cm,将热图所需的#规格化
将numpy作为np导入
从scipy.stats导入模型数据所需的多变量正常值
#读取图像
image=cv2.imread('R42nH.jpg')
#生成模型数据
h、 w=图像.形状[:2]
x=np.arange(w)
y=np.arange(h)
十、 Y=np.meshgrid(X,Y)
位置=np.dstack(X,Y))
mus=[[200100]、[300400]、[500150]]
covs=[[300155],[175550],[400,-100],[40250],[15010],[35200]]
僵尸=np.0((h,w),np.64)
对于邮政编码中的mu、cov(mus、cov):
rv=多元正态分布(μ,cov)
Z=rv.pdf(pos)
僵尸+=Z/np.max(Z)
僵尸/=np.max(僵尸)
#使用alpha通道生成自定义颜色贴图,
#比照。https://stackoverflow.com/a/37334212/11089932
cmap=cm.r
c_cmap=cmap(np.arange(cmap.N))
c_cmap[:,-1]=np.linspace(0,1,cmap.N)
c_cmap=列表颜色映射(c_cmap)
#生成热图,cf。https://stackoverflow.com/a/31546410/11089932
norm=Normalize(vmin=zombies.min(),vmax=zombies.max())
热图=c_cmap(正常(僵尸))
#将图像与热图混合
热图=cv2.CVT颜色(np.uint8(热图*255),cv2.COLOR_RGBA2BGRA)
阿尔法=热图[…,3]/255
alpha=np.tile(np.expand_dims(alpha,axis=2),[1,1,3])
输出=(图像*(1-alpha)+热图[…,:3]*alpha).aType(np.uint8)
#输出
cv2.imshow(“僵尸攻击”,输出)
cv2.等待键(0)
cv2.destroyAllWindows()
热图如下所示:

最终输出如下所示:

请检查,您是否可以将数据提供给该管道,以及结果是否符合您的想法

如果您还希望即使对于较低的(僵尸攻击)数量也具有“显著”颜色,则整个颜色贴图上的线性alpha透明度可能没有那么大的好处。然后手动调整alpha透明度

----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.9.1
皮查姆:2021.1
Matplotlib:3.4.1
NumPy:1.20.2
OpenCV:4.5.1
SciPy:1.6.2
----------------------------------------
假设您在某个NumPy数组中存储了2D(僵尸攻击)数据,我将使用该数据从规范化数据生成热图,参见。然后,我将热图与(浣熊城)图像混合。因此,在colormap中也有一些alpha透明度会很好,cf

下面是一些代码:

导入cv2
从matplotlib.colors导入ListedColormap#自定义colormap所需
从matplotlib.pyplot import cm,将热图所需的#规格化
将numpy作为np导入
从scipy.stats导入模型数据所需的多变量正常值
#读取图像
image=cv2.imread('R42nH.jpg')
#生成模型数据
h、 w=图像.形状[:2]
x=np.arange(w)
y=np.arange(h)
十、 Y=np.meshgrid(X,Y)
位置=np.dstack(X,Y))
mus=[[200100]、[300400]、[500150]]
covs=[[300155],[175550],[400,-100],[40250],[15010],[35200]]
僵尸=np.0((h,w),np.64)
对于邮政编码中的mu、cov(mus、cov):
rv=多元正态分布(μ,cov)
Z=rv.pdf(pos)
僵尸+=Z/np.max(Z)
僵尸/=np.max(僵尸)
#使用alpha通道生成自定义颜色贴图,
#比照。https://stackoverflow.com/a/37334212/11089932
cmap=cm.r
c_cmap=cmap(np.arange(cmap.N))
c_cmap[:,-1]=np.linspace(0,1,cmap.N)
c_cmap=列表颜色映射(c_cmap)
#生成热图,cf。https://stackoverflow.com/a/31546410/11089932
norm=Normalize(vmin=zombies.min(),vmax=zombies.max())
热图=c_cmap(正常(僵尸))
#将图像与热图混合
热图=cv2.CVT颜色(np.uint8(热图*255),cv2.COLOR_RGBA2BGRA)
阿尔法=热图[…,3]/255
alpha=np.tile(np.expand_dims(alpha,axis=2),[1,1,3])
输出=(图像*(1-alpha)+热图[…,:3]*alpha).aType(np.uint8)
#输出
cv2.imshow(“僵尸攻击”,输出)
cv2.等待键(0)
cv2.destroyAllWindows()
热图如下所示:

最终输出如下所示:

请检查,您是否可以将数据提供给该管道,以及结果是否符合您的想法

如果您还希望即使对于较低的(僵尸攻击)数量也具有“显著”颜色,则整个颜色贴图上的线性alpha透明度可能没有那么大的好处。然后手动调整alpha透明度

----------------------------------------
系统信息
----------------------------------------
平台:Windows-10-10.0.16299-SP0
Python:3.9.1
皮查姆:2021.1
Matplotlib:3.4.1
NumPy:1.20.2
OpenCV:4.5.1
SciPy:1.6.2
----------------