FLIR Lepton adapter¶
A FLIR Lepton adaptermodul a FLIR Lepton hőkamera-magokat (külön kapható) csatlakoztatja az OpenMV Cam kamerához, AGC és közvetlen hőmérséklet üzemmóddal egyaránt, ember- és tárgyhőmérséklet méréséhez.
A teljes adatlapért, fényképekért és rendelési információkért lásd a FLIR Lepton adapter termékoldalt.
Kiemelt jellemzők¶
Kompatibilis a FLIR Lepton 1.x / 2.x / 3.x magokkal (külön kapható)
AGC és közvetlen hőmérséklet üzemmód egyaránt, hőmérséklet-leképezéssel
Teljes sötétségben is lát
Kompatibilis az összes moduláris OpenMV Cam alaplappal
Használat¶
A Lepton vezérlése a csi.CSI segítségével történik, cid= csi.LEPTON beállítással. A meghajtó belsőleg felskálázza a Lepton 80x60-as (1.x/2.x) vagy 160x120-as (3.x) natív képkockáját az általad beállított framesize értékre:
import csi
import time
csi0 = csi.CSI(cid=csi.LEPTON)
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
Ha közvetlenül az érzékelőtől szeretnél színezett képkockákat kapni, váltsd a pixformat értéket csi.RGB565-re, és állítsd a csi.CSI.color_palette értékét image.PALETTE_IRONBOW-ra — a meghajtó az alkalmazott palettával adja ki az RGB565 képkockákat, így a snapshot() közvetlenül ironbow színezésű képkockákat ad vissza:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
Hőmérséklet-mérés¶
A radiometrikus Lepton modulok (Lepton 2.5 / 3.5) kalibrált, képpontonkénti hőmérsékleti adatokat szolgáltatnak. A mérési üzemmódot a csi.CSI.ioctl segítségével, a csi.IOCTL_LEPTON_SET_MODE használatával kapcsolhatod be, majd a csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius) paranccsal szűkítheted le a hőmérsékleti ablakot. A Lepton meghajtó lineárisan képezi le a 0 szürkeárnyalatos képpontértéket a min_celsius értékre, a 255-öt pedig a max_celsius értékre, így minden képpont a beállított ablakon belüli hőmérséklet-kereséssé válik. A min_celsius értéknél hidegebb képpontok 0-nál telítődnek, a max_celsius értéknél melegebbek pedig 255-nél.
A csi.IOCTL_LEPTON_SET_MODE két jelzőbitet vesz át. Az első a mérést kapcsolja be; a második az érzékelő hőmérséklet-tartományát választja ki:
Alacsony tartomány —
(True, False)— az érzékelő tartománya-10 °Cés+140 °Cközött (szobaméretű jelenetek). Szűkítsd le az ablakot az érdeklődési területre, pl.(20.0, 40.0)testhő-követéshez:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
Magas tartomány —
(True, True)— az érzékelő tartománya jellemzően-10 °Cés~+450 °Cközött (szobahőmérsékleten~+400 °C) forró tárgyakhoz. Szűkítsd le pl.(0.0, 400.0)értékre kemence vagy forró alkatrész követéséhez:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
Egy szürkeárnyalatos képpont visszaalakítása Celsius-fokra:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
Ez egyedi képpontokon vagy összesített statisztikákon (pl. a Image.get_statistics által adott stats.mean() értéken) is működik egy ROI-n belül, amikor forró/hideg területeket keresel az Image.find_blobs segítségével.
Megjegyzés
A hőmérséklet-méréshez a Leptonnak szürkeárnyalatos üzemmódban kell lennie, beállított színpaletta nélkül — a lineáris képpont-hőmérséklet leképezés csak a nyers szürkeárnyalatos kimeneten érvényes. A megjelenítéshez történő színezést végezd külön, úgy, hogy a szürkeárnyalatos képkockát egy RGB kimeneti pufferre rajzolod az Image.draw_image segítségével, color_palette= image.PALETTE_IRONBOW beállítással:
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)