matlab - 平面图图像的热图生成器

标签 matlab python-3.x heatmap color-mapping

我想生成地板的热图图像。我有以下几件事:


地板的黑白.png图像
Matlab中存储的三列数组。
-前两列表示地板图像的X和Y坐标
-第三个坐标表示该特定坐标的“温度”


我想生成地板的热图,以在这些坐标中显示“温度”强度。但是,我想在平面图的顶部显示热图,以便观众可以看到哪些房间导致了哪些“温度”。

有什么软件可以做到这一点?我可以使用Matlab或Python来做到这一点吗?

谢谢,

纳兹穆尔

最佳答案

一种方法是:

1)使用Matlab或NumPy / matplotlib加载平面图图像。

2)使用一些内置的边缘检测来定位平面图中的边缘像素。

3)形成一个很大的(x,y)位置列表,在平面图中可以找到一条边。

4)绘制您的热图

5)散布平面图的点作为覆盖图。

听起来好像您知道如何分别执行每个步骤,所以您要做的就是查找一些如何将绘图叠加到同一轴上的知识,这在Matlab和matplotlib中都非常容易。

如果您不熟悉,可以使用正确的命令,例如meshgridsurf,可能是contour及其类似的Python命令。我认为Matlab具有内置的Canny边缘检测功能。我相信这在Python中会更加困难,但是如果您使用PIL库,Mahotas库,scikits.image库以及其他一些专门用于图像处理的工具,那还不错。到目前为止,SciPy实际上可能已有一个边缘过滤器,因此请先在此处进行检查。

唯一的棘手问题是温度的(x,y)数据不会与图像中的(x,y)像素位置对齐。在这种情况下,您将不得不使用一些x比例因子和y比例因子来将热图的坐标首先转换为像素坐标,然后绘制热图,然后覆盖层应该起作用。

这是一种技术含量较低的方法。我认为您只需要快速而肮脏的情节来说明某些事情是如何工作的。这种方法的确具有优势,您可以轻松更改平面图点的样式,根据您希望其与热图的交互方式,使其变大,变粗,变薄,不同的颜色或透明。但是,要真正做到这一点,请使用GIMP,Inkscape或Photoshop,然后在事实之后将热图覆盖到图像上。

关于matlab - 平面图图像的热图生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805983/

相关文章:

python-2.7 - 如何将对列表(到矩阵)转换为热图; Python

matlab - 从矩阵中删除行

matlab - 比较 k 均值聚类

matlab - 在 MATLAB 中转换为单个

r - 热图颜色在绘图中不起作用

python - Seaborn 热图上 y 轴刻度的垂直对齐

c++ - 如何在C++中快速创建数组

python - 将映射转换为列表返回 TypeError : 'int' object is not callable

python-3.x - 来自 Python 的 AWS 网络负载均衡器后面的客户端 IP

python - 调用异常 : GraphViz's executables not found