FLIR Lepton Adaptörü¶
FLIR Lepton Adaptör Modülü, FLIR Lepton termal çekirdeklerini (ayrı satılır) OpenMV Cam’e bağlar; insan / nesne sıcaklığı ölçümü için hem AGC hem de doğrudan termal modlara sahiptir.
Tam veri sayfası, fotoğraflar ve sipariş bilgileri için FLIR Lepton Adaptörü ürün sayfasına bakın.
Öne Çıkanlar¶
FLIR Lepton 1.x / 2.x / 3.x çekirdekleriyle uyumlu (ayrı satılır)
Sıcaklık eşlemesiyle hem AGC hem de doğrudan termal modlar
Tam karanlıkta görür
Tüm modüler OpenMV Cam taban kartlarıyla uyumlu
Kullanım¶
Lepton’u cid= csi.LEPTON ile csi.CSI üzerinden sürün. Sürücü, Lepton’un 80x60 (1.x/2.x) veya 160x120 (3.x) yerel çerçevesini dahili olarak ayarladığınız herhangi bir framesize değerine yükseltir:
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())
Doğrudan sensörden renklendirilmiş çerçeveler almak için pixformat değerini csi.RGB565 olarak değiştirin ve csi.CSI.color_palette değerini image.PALETTE_IRONBOW olarak ayarlayın — sürücü, paleti uygulanmış RGB565 çerçeveler üretir, böylece snapshot() doğrudan ironbow renkli çerçeveler döndürür:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
Sıcaklık ölçümü¶
Radyometrik Lepton’lar (Lepton 2.5 / 3.5) kalibre edilmiş piksel başına sıcaklık verisi raporlar. Ölçüm modunu csi.IOCTL_LEPTON_SET_MODE ile csi.CSI.ioctl üzerinden etkinleştirin, ardından csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius) ile sıcaklık penceresini sınırlandırın. Lepton sürücüsü, gri tonlama piksel değeri 0’ı min_celsius ile ve 255’i max_celsius ile doğrusal olarak eşler, böylece her piksel yapılandırılmış pencere içinde bir sıcaklık aramasına dönüşür. min_celsius değerinden soğuk pikseller 0’da, max_celsius değerinden sıcak pikseller 255’te doygunluğa ulaşır.
csi.IOCTL_LEPTON_SET_MODE iki bayrak alır. İlki ölçümü açar; ikincisi sensörün sıcaklık aralığını seçer:
Düşük aralık —
(True, False)— sensör aralığı-10 °Cile+140 °Carası (oda ölçekli sahneler). Pencereyi ilgi alanına göre sınırlandırın, örn. vücut ısısı takibi için(20.0, 40.0)csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
Yüksek aralık —
(True, True)— sıcak nesneler için tipik sensör aralığı-10 °Cile~+450 °Carası (oda sıcaklığında~+400 °C). Örneğin fırın veya sıcak eleman takibi için(0.0, 400.0)ile sınırlandırın:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
Bir gri tonlama pikselini tekrar Celsius’a dönüştürmek için:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
Bu, sıcak/soğuk bölgeleri Image.find_blobs ile bulurken bir ROI içindeki tek pikseller üzerinde veya toplanmış istatistikler (örn. Image.get_statistics kaynaklı stats.mean()) üzerinde çalışır.
Not
Sıcaklık ölçümü, Lepton’un hiçbir renk paleti ayarlanmamış gri tonlama modunda olmasını gerektirir — doğrusal piksel-sıcaklık eşlemesi yalnızca ham gri tonlama çıktısında geçerlidir. Görüntülemek için renklendirmeyi, gri tonlama çerçevesini Image.draw_image ve color_palette= image.PALETTE_IRONBOW ile bir RGB çıkış arabelleğine çizerek ayrıca yapın:
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)