用python程序,把现成的热力图识别转化为数据保存在excel表格中,然后通过保存在EXCEL中的数据,能够重新绘制出热力图。希望给出两份代码,一份能把现成的热力图转化为数据保存EXCEL中,一份能通过上面保存的EXCEL数据重新绘制成热力图,希望不调佣opencv库
时间: 2024-03-27 16:35:53 浏览: 62
好的,下面是两份代码。第一份代码是将现成的热力图转化为数据保存在Excel表格中。
```python
import numpy as np
import pandas as pd
from PIL import Image
# 读取热力图
heatmap = Image.open('heatmap.jpg')
heatmap_arr = np.array(heatmap)
# 将热力图转为灰度图
gray_heatmap = heatmap.convert('L')
gray_heatmap_arr = np.array(gray_heatmap)
# 将灰度图像素值转为0-255之间的整数
gray_heatmap_arr = (gray_heatmap_arr / np.max(gray_heatmap_arr) * 255).astype(int)
# 将灰度图每个像素的值存储到DataFrame中
df = pd.DataFrame(gray_heatmap_arr)
# 将DataFrame保存到Excel中
df.to_excel('heatmap_data.xlsx', index=False, header=False)
```
第二份代码是通过保存在Excel中的数据重新绘制出热力图。
```python
import numpy as np
import pandas as pd
from PIL import Image
# 从Excel中读取数据
df = pd.read_excel('heatmap_data.xlsx', header=None)
# 将数据转为numpy数组
data = df.values
# 将像素值转为0-255之间的整数
data = (data / np.max(data) * 255).astype(int)
# 将数据转为灰度图像
gray_heatmap = Image.fromarray(np.uint8(data), mode='L')
# 显示灰度图像
gray_heatmap.show()
# 将灰度图像转为热力图像
heatmap = gray_heatmap.convert('RGB')
# 显示热力图像
heatmap.show()
```
这两份代码均不需要调用OpenCV库。注意,第二份代码中,绘制的热力图像素值已经经过了转换,因此可能与原来的热力图略有不同。
阅读全文