使用numpy数组操作从图像生成像素密度图(热图)

鲁米

我尝试解决的特定问题是:我有一个二进制图像二进制图,我想为其生成一个热图(密度图),我的想法是获取此图像的2D数组,假设它是12x12

a = np.random.randint(20, size=(12, 12));

索引并使用固定大小的子矩阵(例如3x3)对其进行处理,因此将为每个子矩阵计算一个像素百分比值(非零像素/总像素)。

submatrix = a[0:3, 0:3]
pixel_density = np.count_nonzero(submatrix) / submatrix.size

最后,所有百分比值将组成一个新的2D数组(一个较小的4x4密度数组),该数组代表原始图像的密度估计。较低的分辨率很好,因为将要比较的数据也具有较低的分辨率。

我不确定如何通过numpy做到这一点,尤其是对于索引部分。另外,如果有更好的方式生成热图,也请让我知道。

谢谢!

韦伯洛

也许是二维卷积基本上,这将通过a矩阵扫描b矩阵,仅矩阵低1s。因此,它将完成您正在寻找的总和。链接在底部附近具有可视化的卷积演示。

import numpy as np
from scipy import signal

a = np.random.randint(2, size=(12, 12))
b = np.ones((4,4))
signal.convolve2d(a,b, 'valid') / b.sum()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章