thermal_overlay.py

# この作品はMITライセンスの下で提供されています。
# Copyright (c) 2013-2023 OpenMV LLC. 全著作権所有。
# https://github.com/openmv/openmv/blob/master/LICENSE
#
# サーマルオーバーレイのデモ
#
# この例では、OpenMV Camのメインカメラからのライブ映像出力に
# ヒートマップを重ね合わせる方法を示します。

import csi
import image
import time
import fir

# またはimage.BILINEARや0(最近傍補間)
drawing_hint = image.BICUBIC | image.CENTER | image.SCALE_ASPECT_KEEP

ALT_OVERLAY = False  # 2枚目のIR画像を割り当てるにはTrueに設定します。

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QQVGA)
csi0.snapshot(time=2000)

# サーマルセンサーを初期化します
fir.init()

# より滑らかな映像のために別のフレームバッファを割り当てます。
extra_fb = image.Image(csi0.width(), csi0.height(), csi0.pixformat())

# FPSクロック
clock = time.clock()

while True:
    clock.tick()

    # 画像を撮影します
    img = csi0.snapshot()

    # FIRデータをキャプチャします
    # ta: 周囲温度
    # ir: 対象物の温度(IR配列)
    # to_min: 対象物の最低温度
    # to_max: 対象物の最高温度
    try:
        ta, ir, to_min, to_max = fir.read_ir()
    except OSError:
        continue

    if not ALT_OVERLAY:
        # 画像をスケーリングし、フレームバッファとブレンドします
        fir.draw_ir(img, ir, hint=drawing_hint)
    else:
        # セカンダリ画像を作成し、フレームバッファに合成します。
        extra_fb.clear()
        fir.draw_ir(extra_fb, ir, hint=drawing_hint)
        img.blend(extra_fb, alpha=128)

    # 周囲温度、最低温度、最高温度を描画します。
    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
    )

    # 高品質ストリーミングを強制します...
    img.to_jpeg(quality=90)

    # FPSを表示します。
    print(clock.fps())

results matching ""

    No results matching ""