python代码红外温度矩阵、温度数据转为图片保存为PNG格式

python代码红外温度矩阵、温度数据转为图片保存为PNG格式

博客说明

此博客为将保存在txt文件中的温度矩阵转为png格式保存
提供了参考使用的温度矩阵txt文件和python转换代码

txt温度文件

这个数据是160x120红外温度矩阵,我放在百度网盘,直接放博客这里占了近10W字数一打开就卡。
https://pan.baidu.com/s/1mgqHJb700_uLasywaPVNWA
密码:2bah
放两张图让大家先看看是什么数据
温度矩阵数据为160行,每行120个温度数据,每行数据换行保存,每个温度数据逗号隔开
在这里插入图片描述
在这里插入图片描述

温度矩阵转图片方法

这里提供两种方法,第一种是用python里面的库实现,第二种是给没有python环境的人测试用(要有execl)
一、使用python将温度数据保存为图片
python懂的小伙伴都懂,不做过多解释,直接上代码
直接Image库里面一步到位生成保存图像,自行研究

#!/usr/bin/env python
import cv2
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
import matplotlib



f = open(r"HWdata.txt")
val_list = f.readlines()
lists =[]
for string in val_list:
    string = string.split(',')
    lists.append(string[0:120])
    a = np.array(lists)
    a= a.astype(float)
a = np.array(a).reshape(160, 120)

#####
#interpolation=nearest  插值
#origin=upper 镜像
#cmap=plt.cm.      jet\hsv\hot\cool\spring\summer\autumn\winter\gray\bone\copper\pink\lines
#####
#plt.imshow(a,interpolation='nearest',cmap=plt.cm.hot,origin='upper')
plt.imshow(a,interpolation='None',cmap=plt.cm.gray,origin='upper')

#温标  shrink=0.8
plt.colorbar()
plt.xticks(())
plt.yticks(())
plt.show() 
#保存图片
#matplotlib.image.imsave('test.png',a)


二、使用execl将温度数据保存为图片
1、将txt文件中的温度数据放在execl中
此处是将数据放在了1列160行
在这里插入图片描述
2、将1列160行的温度数据拆分出来,转成160行120列
点击execl中的数据-分列
在这里插入图片描述
选择分隔符号点击下一步
在这里插入图片描述
选择逗号,点击下一步
在这里插入图片描述
最后点击完成,就可以得到160行120列的放在execl温度数据
在这里插入图片描述
在这里插入图片描述
3、对温度数据附上颜色
首先选中全部单元格将单元格缩小到像素值为1
(这个不知道用什么方法比较好,不是很会用execl,我用的方法是点击作左上角的小三角然后拖动单元格让他像素值为1)
这步也可以不操作,只是这样等下附上颜色出来的图片会比较大被拉伸了一样,尽量弄成正方形的单元格也行
在这里插入图片描述
可以先检查点击一下左上角的小三角检查一下数据量对不对
这里图片看不清,但是右下角计数显示是19200,刚好是160x120
数据没问题,继续下一步上色
在这里插入图片描述
我们在选中全部数据的状态下,在开始中蒂娜及条件格式,点击新建规则
在这里插入图片描述
在规则中设置为我下图那样,格式为三色刻度,中间50%的颜色选择一个灰色,最高最低可以分别设置为黑白
在这里插入图片描述
点击确定即可生成一张温度组成的红外图,颜色可以自行选择,这种保存的方法要自行摸索了,我也不是很了解execl
在这里插入图片描述
如果你将这个execl的单元格都设置成了上述的那样,那么就可以直接复制数据到着上面直接显示
在这里插入图片描述

总结一下
第二种方法主要给极端人士使用不推荐,如果需要其他温度数据我有空弄上传一些,祝大家新年快乐,点个赞吧。
在这里插入图片描述

发布了5 篇原创文章 · 获赞 14 · 访问量 1609

猜你喜欢

转载自blog.csdn.net/qq_41840148/article/details/104053116