FLIR Lepton -adapteri¶
FLIR Lepton -adapterimoduuli yhdistää FLIR Lepton -lämpöytimet (myydään erikseen) OpenMV Cam -kameraan, ja siinä on sekä AGC- että suora lämpötilatila ihmisten / esineiden lämpötilan mittaamiseen.
Täydellinen tietolehti, kuvat ja tilausohjeet löytyvät FLIR Lepton -adapterin tuotesivulta.
Kohokohdat¶
Yhteensopiva FLIR Lepton 1.x / 2.x / 3.x -ytimien kanssa (myydään erikseen)
Sekä AGC- että suora lämpötilatila lämpötilakartoituksella
Näkee täydellisessä pimeydessä
Yhteensopiva kaikkien modulaaristen OpenMV Cam -peruskorttien kanssa
Käyttö¶
Ohjaa Leptonia csi.CSI:n kautta asetuksella cid= csi.LEPTON. Ajuri skaalaa sisäisesti Leptonin natiivin 80x60-kehyksen (1.x/2.x) tai 160x120-kehyksen (3.x) mihin tahansa asettamaasi kehyskokoon:
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())
Saadaksesi värilliset kehykset suoraan sensorista, vaihda pikseliformaatiksi csi.RGB565 ja aseta csi.CSI.color_palette arvoon image.PALETTE_IRONBOW — ajuri tuottaa RGB565-kehyksiä, joihin paletti on jo sovellettu, joten snapshot() palauttaa ironbow-väriset kehykset suoraan:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
Lämpötilan mittaus¶
Radiometriset Leptonit (Lepton 2.5 / 3.5) raportoivat kalibroitua pikselikohtaista lämpötiladataa. Ota mittaustila käyttöön funktiolla csi.CSI.ioctl käyttäen lippua csi.IOCTL_LEPTON_SET_MODE, ja rajaa sitten lämpötilaikkuna lipulla csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius). Lepton-ajuri kuvaa lineaarisesti harmaasävypikselin arvon 0 arvoon min_celsius ja 255 arvoon max_celsius, joten jokaisesta pikselistä tulee lämpötilahaku määritetyn ikkunan sisällä. Pikselit, jotka ovat kylmempiä kuin min_celsius, saturoituvat arvoon 0, ja pikselit, jotka ovat kuumempia kuin max_celsius, saturoituvat arvoon 255.
csi.IOCTL_LEPTON_SET_MODE ottaa kaksi lippua. Ensimmäinen kytkee mittauksen päälle; toinen valitsee sensorin lämpötila-alueen:
Matala alue —
(True, False)— sensorin alue-10 °C…+140 °C(huoneenkokoiset näkymät). Rajaa ikkuna kohdealueeseen, esim.(20.0, 40.0)kehonlämmön seurantaan:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
Korkea alue —
(True, True)— sensorin alue tyypillisesti-10 °C…~+450 °C(~+400 °Chuoneenlämmössä) kuumille esineille. Rajaa esim.(0.0, 400.0)uunin tai kuuman elementin seurantaan:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
Harmaasävypikselin muuntaminen takaisin celsiusasteiksi:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
Tämä toimii yksittäisille pikseleille tai aggregoiduille tilastoille (esim. stats.mean() funktiosta Image.get_statistics) ROI:n sisällä, kun paikannetaan kuumia/viileitä alueita funktiolla Image.find_blobs.
Muista
Lämpötilan mittaus edellyttää, että Lepton on harmaasävytilassa ilman asetettua väripalettia — lineaarinen pikselistä lämpötilaksi -kuvaus pätee vain raakaan harmaasävylähtöön. Värittääksesi sen näyttöä varten tee se erikseen piirtämällä harmaasävykehys RGB-lähtöpuskuriin funktiolla Image.draw_image ja asetuksella 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)