矩阵中已知值之间的拉普拉斯插值

2024-06-26 04:12:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个热图生成程序,希望能根据建筑布局提供的值样本填充颜色(这不是基于GPS的)。你知道吗

如果在一个巨大的未知矩阵中只有几个已知的数据点(比如这些),那么如何在Python中得到中间的值呢?地址:

0,0,0,0,1,0,0,0,0,0,5,0,0,0,0,9
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,2,0,0,0,0,0,0,0,0,8,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,8,0,0,0,0,0,0,0,6,0,0,0,0,0,0
0,0,0,0,0,3,0,0,0,0,0,0,0,0,7,0

我知道双线性不能做到这一点,而高斯会把所有的峰值降低到很低的值,因为周围有大量的零。这显然是一个矩阵处理命题,我不需要它是贝塞尔曲线平滑,只是足够接近一个图形表示就可以了。我的矩阵最终将是大约1500×900个细胞大小,大约有100个已知点。你知道吗

一旦值被插值,我已经写了代码将其全部转换为颜色,没有问题。只是现在我在一个黑色的背景上撒上了单色的像素。你知道吗


Tags: 数据程序图形颜色地址矩阵布局曲线
1条回答
网友
1楼 · 发布于 2024-06-26 04:12:53

提出一个简单的解决方案:

第1步:插值和外推现有数据点到周围环境。 这可以使用“波传播”类型的算法来实现。 已知点将其值“展开”到周围环境中,直到所有栅格都被一些已知值“淹没”。在这个阶段结束时,您有许多相交的“磁盘”,没有留下零。你知道吗

步骤2:平滑结果(使用bilinear filtering或其他一些过滤)。你知道吗

如果您能够使用ScyPy,那么interp2d就是您想要的。一个可能的问题是,它似乎不能顺利地推断出according to this issue。这意味着墙附近的所有值都将与其最近的相邻点相同。这可以通过在所有4个角落放置温度计来解决:)

相关问题 更多 >