例程讲解12-MLX90640_overlay_smoothed MLX90640叠加平滑

# MLX90640叠加演示与红外平滑
#
# 这个例子展示了如何将热图覆盖到主摄像头的OpenMV摄像头的实时视频输出上。

import sensor, image, time, fir

IR_SCALE = 4

sensor.reset()
#初始化摄像头,reset()是sensor模块里面的函数

sensor.set_pixformat(sensor.RGB565)
#设置图像色彩格式,有RGB565色彩图和GRAYSCALE灰度图两种

sensor.set_framesize(sensor.QQVGA)
#设置图像像素大小

sensor.skip_frames(time = 2000)

# 初始化热传感器
fir.init(type=fir.FIR_MLX90640, refresh=32) # 16Hz, 32Hz or 64Hz.

# 为更流畅的视频分配另一个帧缓冲。
ir_buffer = image.Image(fir.width() * IR_SCALE, fir.height() * IR_SCALE, sensor.GRAYSCALE)

x_scale = sensor.width() / ir_buffer.width()
y_scale = sensor.height() / ir_buffer.height()

# FPS clock
clock = time.clock()

while (True):
    clock.tick()

    # 捕捉图像
    img = sensor.snapshot()

    # Capture FIR data
    # 捕捉FIR数据
    #   ta: Ambient temperaturev 环境温度
    #   ir: Object temperatures (IR array) 物体温度(IR 阵列)
    #   to_min: Minimum object temperature 最小物体温度
    #   to_max: Maximum object temperature 最大物体温度
    ta, ir, to_min, to_max = fir.read_ir()

    # 创建一个副图像,然后混合到帧缓冲区中。

    # 转换FIR数据为灰度图像并缩放
    fir.draw_ir(ir_buffer, ir, alpha=256)

    # 平滑缩放后的图像
    ir_buffer.mean(IR_SCALE-1)

    # 使用调色板将灰度FIR图像转换为彩色,并与相机图像相结合
    img.draw_image(ir_buffer, 0, 0, x_scale=x_scale, y_scale=y_scale, alpha=128, color_palette=sensor.PALETTE_IRONBOW)

    # 绘制环境温度、最小温度和最大温度。
    img.draw_string(8, 0, "Ta: %0.2f C" % ta, color = (255, 0, 0), mono_space = False)
    img.draw_string(8, 8, "To min: %0.2f C" % to_min, color = (255, 0, 0), mono_space = False)
    img.draw_string(8, 16, "To max: %0.2f C"% to_max, color = (255, 0, 0), mono_space = False)

    # Force high quality streaming...
    # 强制高质量流…
    img.compress(quality=90)

    # Print FPS.
    print(clock.fps())

results matching ""

    No results matching ""