Adaptér FLIR Lepton¶
Modul adaptéru FLIR Lepton připojuje termální jádra FLIR Lepton (prodávají se samostatně) k OpenMV Cam, a to v režimech AGC i přímo termálním pro měření teploty osob / objektů.
Úplný datasheet, fotografie a možnosti objednání najdete na produktové stránce adaptéru FLIR Lepton.
Hlavní vlastnosti¶
Kompatibilní s jádry FLIR Lepton 1.x / 2.x / 3.x (prodávají se samostatně)
Režimy AGC i přímo termální s mapováním teploty
Vidí v naprosté tmě
Kompatibilní se všemi modulárními základními deskami OpenMV Cam
Použití¶
Lepton ovládáte přes csi.CSI s cid= csi.LEPTON. Ovladač interně zvětšuje nativní snímek Leptonu 80x60 (1.x/2.x) nebo 160x120 (3.x) na jakýkoli framesize, který nastavíte:
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())
Chcete-li získat obarvené snímky přímo ze senzoru, přepněte pixformat na csi.RGB565 a nastavte csi.CSI.color_palette na image.PALETTE_IRONBOW — ovladač vydává snímky RGB565 s aplikovanou paletou, takže snapshot() vrací snímky obarvené paletou ironbow přímo:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
Měření teploty¶
Radiometrické Leptony (Lepton 2.5 / 3.5) hlásí kalibrovaná data o teplotě pro jednotlivé pixely. Režim měření zapnete přes csi.CSI.ioctl pomocí csi.IOCTL_LEPTON_SET_MODE, poté omezíte teplotní okno pomocí csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius). Ovladač Leptonu lineárně mapuje hodnotu pixelu ve stupních šedi 0 na min_celsius a 255 na max_celsius, takže každý pixel se stává vyhledáním teploty v rámci nakonfigurovaného okna. Pixely chladnější než min_celsius saturují na 0, pixely teplejší než max_celsius saturují na 255.
csi.IOCTL_LEPTON_SET_MODE přijímá dva příznaky. První zapíná měření; druhý vybírá teplotní rozsah senzoru:
Nízký rozsah —
(True, False)— rozpětí senzoru-10 °Caž+140 °C(scény v měřítku místnosti). Omezte okno na oblast zájmu, např.(20.0, 40.0)pro sledování tělesného tepla:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
Vysoký rozsah —
(True, True)— rozpětí senzoru typicky-10 °Caž~+450 °C(~+400 °Cpři pokojové teplotě) pro horké objekty. Omezte např. na(0.0, 400.0)pro sledování pece nebo horkého prvku:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
Převod pixelu ve stupních šedi zpět na stupně Celsia:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
Funguje to na jednotlivých pixelech nebo na agregovaných statistikách (např. stats.mean() z Image.get_statistics) uvnitř ROI při lokalizaci horkých/chladných oblastí pomocí Image.find_blobs.
Poznámka
Měření teploty vyžaduje Lepton v režimu stupňů šedi bez nastavené barevné palety — lineární mapování pixelu na teplotu platí pouze na surovém výstupu ve stupních šedi. Pro obarvení k zobrazení to proveďte samostatně vykreslením snímku ve stupních šedi do výstupního bufferu RGB pomocí Image.draw_image a color_palette= image.PALETTE_IRONBOW
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)