python树莓派读取IIC数据768字节resiza(24,32)后如何差值?

在用树莓派+MLX90640红外传感器做的简易热成像,树莓派直接通过Python从IIC读取768个字节,应该是一维数组,然后再img.resiza(24,32)形成二维数组,直接在Python中显示如图1,基本上是马赛克效果,

想插值一下,看了算法,如图2,但实例都是有X,Y的,本人太小白了,不知道如何把现有的数组插值,请指点。

图1


from ctypes import *
import numpy as np
from scipy import interpolate
import matplotlib.pylab as pl
import matplotlib as mpl
mlx90640 = cdll.LoadLibrary('./libmlx90640.so')
import matplotlib.pyplot as plt
import time
import smbus
bus=smbus.SMBus(1)
data = bus.read_word_data(0x33,0x800D)
bus.write_word_data(0x33,0x800D,data|0x0380)  #设置高帧率模式

#mlx90640 will output 32*24 temperature array with chess mode

temp=(c_float*768)()
ptemp=pointer(temp)
mlx90640.get_mlx90640_temp(ptemp)
time.sleep(1)
mlx90640.get_mlx90640_temp(ptemp)
plt.figure(1)

while True:
    mlx90640.get_mlx90640_temp(ptemp)
    img = (temp-np.min(temp))/(np.max(temp)-np.min(temp))*255  #归一化
    img.resize(32,24)   #将一维数组转化为二维数组,便于转化为图片
    /#img = img.astype(np.uint8)  #opencv处理的话就要
    plt.clf()
    plt.imshow(img,cmap='jet')  # jet/hsv/ranbow/gunplot等颜色模式可以选择
    plt.text(16,12,str(round(temp[383],2))+'°C')  #显示图像中心的物体温度
    plt.pause(0.001)



#代码粘上-----------------

#-------------------以下是参考插值算法-----------------------






"""
    绘制热成像图
"""
import numpy as np
import matplotlib.pyplot as mp

#准备数据
num = 1000
x, y = np.meshgrid(np.linspace(-3, 3, 10000),
                   np.linspace(-3, 3, 10000))

z = (1 - x / 2 + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)

#绘制图片
mp.figure("imshow", figsize=(8, 6), facecolor="lightgray")
mp.title("imshow", fontsize=18)

mp.imshow(z, cmap="jet", origin="lower")
mp.colorbar()
#p.show()

想插值一下,看了算法,如图2,但实例都是有X,Y的,本人太小白了,不知道如何把现有的数组插值,请指点。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。