Raspberry PI で Lepton3.x を使う（その３）

# はじめに
簡単に温度測定をしようと Lepton 3.5 を使っています。
当初思っていたほど『簡単』ではなかったことについて
いろいろ書いている記事の３回目です。

# 私の最新ブランチ

ここ↓です。
- https://github.com/higuchi-toshio-intec/LeptonModule/tree/develop

こんな感じ↓に fork し伸びています。

|![github-LeptonModule-network-20191016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/ba60f45f-3650-f4f6-c65b-648f4fee4369.png)|
|:-:|


前回の記事からの主な変更点

- 自分の開発用ブランチ develop を作成
- raspberrypi_video から再利用可能な部分を raspberrypi_libs/lepton として分離
- ブランチ save_png_file を develop にマージ
  - raspberrypi_video とは別に save_file で追加
  - サポートするファイル形式を２種追加（PNG + CSV/PGM）

# ところで何度？
始めたきっかけは『簡単に温度測定』すること。

## 表示形式ごとの取り扱いの違い

- 画像(PNG)を見るだけじゃ、何度かわからない

|![LeptonModule-png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/c20b000c-071b-48e2-34c9-2dfbf62794f8.png)|
|:-:|

- 画像(PGM)形式は、テキスト処理も可能な画像として便利かと思ったけど使いにくい
  - 生データだとデータレンジ幅が広すぎで画像として見えないが、境界を強調すればわかるレベル

|![LeptonModule-pgm-fullrange.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/24b898a2-6efc-6550-7dcb-c32458a852a2.png)|![LeptonModule-pgm-fullrange+.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/d85eba6c-1f0d-32fd-4c72-97a72c3d979d.png)|
|:-:|:-:|


  - データレンジ幅を狭めれば画像として使えるが、これでは温度の取り扱いに関しては PNG と大差ない

|![LeptonModule-pgm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/e21bfc05-68be-9e7e-ed1b-eb407359dad4.png)|
|:-:|

- テキストデータ(CSV)形式は、処理するには使いやすい形式でした。
  - 個々の値も確認できる

|![LeptonModule-csv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/3e8d9540-0d2e-5692-27a7-bd573077d665.png)|
|:-:|

  - 範囲を広げて閾値を設定すれば画像らしくも見える（当然、画像にだって変換可能）

|![LeptonModule-csv-colored.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427107/bc9f9843-8ccc-0c33-ef18-1ecb373efff3.png)|
|:-:|


## 取得値について
- CSV形式でデータを見ると、値の幅は約28000～約31000となっている
- [提供されている資料](https://www.flir.com/globalassets/imported-assets/document/flir-lepton-engineering-datasheet.pdf)には Raw14 もしくは RGB888 って書いてある（「4.2.2 VoSPI Protocol – Lepton 1.5, 1.6, 2.0 and 2.5」など参照）
  - ソースコード見ているから Raw14 のデータであることは知っている
  - Raw14 は 14ビットのデータなので、範囲は 0～16384
- 取得した値と資料に書かれている内容が違う！のは、英語資料の読み込み不足（私の英語力不足が根本原因）
  - デフォルト動作を理解できていなかった（以下がデフォルト）
     - Raw14 モードが選択
     - AGC off
     - TLinear モードが選択(←これが 16 bit データ！）

## TLinear について
```
TLinear mode changes the pixel output from representing scene flux in 14-bit
digital counts to representing scene temperature values in Kelvin (multiplied by a scale factor to include
decimals).
For example, with TLinear mode enabled with a resolution of 0.01, a pixel value of 30000 signifies that
the pixel is measuring 26.85°C (300.00K – 273.15K).
```
Lepton はデフォルト設定だと、思いのほか使いやすい設定であることが分かった。
```温度(摂氏)＝値/100 - 273.15```

- 今回の取得データ範囲が、約28000～約31000 ということは、約７℃から約３７℃ってこと。
- 人の体温が測定できているので、**当初の目的『Leptonを使っての簡易温度測定』は達成できているね！**

---
# 記事リスト
- [Raspberry PI で Lepton3.x を使う](https://qiita.com/higuchi-toshio-intec/items/da4f12e3e09426f45812)
- [Raspberry PI で Lepton3.x を使う（その２）](https://qiita.com/higuchi-toshio-intec/items/c20470abbf9a18971bec)
- [Raspberry PI で Lepton3.x を使う（その３）](https://qiita.com/higuchi-toshio-intec/items/fd7d8641313afe53a12f)（← 今回の記事）
- [Raspberry PI で Lepton3.x を使う（その４）](https://qiita.com/higuchi-toshio-intec/items/d72448e3e473c8968d40)
- [Raspberry PI で Lepton3.x を使う（その５）](https://qiita.com/higuchi-toshio-intec/items/7961cd2e51de0d582cac)

<!-- eof -->