ラズパイのカメラ性能メモ

## 背景

ラズパイにカメラをつけて、定期的に画像をとって、画像に映った文字とか認識したい。
画像の細かいところまで見たい時に、どんなカメラや設定にすればいいかなと調査した
メモです。

## 試したカメラ

・Webカメラ: [ロジクール c920r](https://www.amazon.co.jp/Logicool-%E3%83%AD%E3%82%B8%E3%82%AF%E3%83%BC%E3%83%AB-HD-%E3%82%A6%E3%82%A7%E3%83%96%E3%82%AB%E3%83%A0-c920r/dp/B0158F77Z2)（1万円くらい）
画像がきれいと評価が高かったWebカメラを試しました。

・カメラモジュール: [ラズパイ用カメラモジュール v1.3](https://www.amazon.co.jp/dp/B07GCSC42V/ref=asc_df_B07GCSC42V2612985/?tag=jpgo-22&creative=9339&creativeASIN=B07GCSC42V&linkCode=df0&hvadid=280366530851&hvpos=1o1&hvnetw=g&hvrand=10691550346538041274&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009310&hvtargid=pla-493387296864)（900円くらい）
解像度が500万->800万に上がっているv2（4500円くらい）もあります。

## 写真の画素数と解像度の関係

画素数は一枚の写真のデータ量を表し、画素数が大きいほど、データ量が多く、より細かいところまで見れます。（アップにした時にきれいに見えます）

解像度はデータの密度を表し、1インチの四角形に何画素入るかという数値です。

ただ、PCなどで表示する際の解像度は画像解像度といって、単純にピクセル数を表します。
画面解像度はフルHDだと1920x1080、4Kだと3840x2160のように決まっているようです。

c920r
 - 解像度：300万（ソフトウェア処理で1500万）

カメラモジュールv1.3
 - 解像度：500万(2592×1944)

## c920rのオプション

```sh
$ v4l2-ctl -L
                     brightness (int)    : min=0 max=255 step=1 default=-8193 value=128
                       contrast (int)    : min=0 max=255 step=1 default=57343 value=128
                     saturation (int)    : min=0 max=255 step=1 default=57343 value=128
 white_balance_temperature_auto (bool)   : default=1 value=1
                           gain (int)    : min=0 max=255 step=1 default=57343 value=0
           power_line_frequency (menu)   : min=0 max=2 default=2 value=2
				0: Disabled
				1: 50 Hz
				2: 60 Hz
      white_balance_temperature (int)    : min=2000 max=6500 step=1 default=57343 value=4000 flags=inactive
                      sharpness (int)    : min=0 max=255 step=1 default=57343 value=128
         backlight_compensation (int)    : min=0 max=1 step=1 default=57343 value=0
                  exposure_auto (menu)   : min=0 max=3 default=0 value=3
				1: Manual Mode
				3: Aperture Priority Mode
              exposure_absolute (int)    : min=3 max=2047 step=1 default=250 value=250 flags=inactive
         exposure_auto_priority (bool)   : default=0 value=0
                   pan_absolute (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                  tilt_absolute (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                 focus_absolute (int)    : min=0 max=250 step=5 default=8189 value=0 flags=inactive
                     focus_auto (bool)   : default=1 value=1
                  zoom_absolute (int)    : min=100 max=500 step=1 default=57343 value=100
```

```sh
v4l2-ctl -c zoom_absolute=200
# 撮影
fswebcam -r 1920x1080 -F 30 ./webc_z500.jpg
```
大きさ：1920x1080
zoom:100(default)
![webcn.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/2e4ec2d6-326a-5618-7754-f9ec7bbacf6a.jpeg)

zoom:200
![webcn_z200.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/47012dfd-139c-3213-fe54-78c80d86d9e7.jpeg)

zoom:500
![webcn_z500.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/f0e498c3-eda7-be08-db19-89f9ad150fdd.jpeg)


ズームを200より大きくしても、見た目は変わりませんでした。
ファイルの容量も変わらないので、謎です。設定がおかしいのかもしれません。。

大きさを変える：640x360
![webcn_z200_s.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/6829c00c-ff87-ee71-9c1d-9f146fbdc2e2.jpeg)


解像度は変わってないです。単純に取得する範囲が小さくなりました。

sharpnessは、PCで見る分には違いがあまりわかりませんでしたが、
画像容量は大きくなったので、線とかくっきりしたのかなと思います。

大きさ:1920x1080、shapeness:255、contrast:255、zoom:200
![webcn_z500_s255_c255.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/b46b0f72-c9d8-9369-de26-38915c6a9b8b.jpeg)


## カメラモジュールのオプション

https://www.mztn.org/rpi/rpi23.html
詳細はここを見ていただけたらと。

```sh
raspistill -o cameram0.jpg -w 1920 -h 1080
```

大きさ：1920x1080 （容量1.2M）
![cameram.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/151dcb0f-7e8f-88b5-e7be-dcc1fa7161e1.jpeg)


```sh
raspistill -o cameram_sh100_A.jpg -w 1920 -h 1080 -sh 100 -co 100 -br 55 -sa -50
```

![cameram_sh100_A.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/328b4431-0f05-007e-3a92-0c2dff5dbccb.jpeg)

小さいサイズ：640x360 （容量164k）
![cameram_s.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/20a783b6-0dca-cc06-fd88-fac4550e9b7a.jpeg)

MAXサイズ:2592x1944 （容量2.6M）
![cameram.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/44e8255b-2555-743a-7839-89cf8f347162.jpeg)

```sh
raspistill -o cameram_skt.jpg -w 1920 -h 1080 -n -ifx sketch
```
スケッチ風
![cameram_skt.jpg](https://qiita-image-store.s3.amazonaws.com/0/15074/60ea00f2-f2a9-3f52-21bc-ae8de30f90ab.jpeg)

この他にもISO感度(100〜800)、EV補正(-10~10)などのオプションがあります。
ISO感度を小さくして、EV補正で少し明るく(5とか？)すると、細かい文字の読み取りにいいかもしれません。

## まとめ

解像度1500万にするソフトウェアってwindowsのアプリのことだと思うんですが、
ラズパイの設定で最大解像度にできるんでしょうか・・？

誰か教えて欲しいです。

ズームも。。