バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/
はじめに
画像処理を試す場合、RGBではなく、グレースケールで試すことが多い。
というわけで、まずは画像をグレースケール化するところの話をする。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
グレースケールの方が楽ちん?

で、これからいろいろな画像処理をしていくのだと思うのだけど、
どんな感じで進めるの?

まずはグレースケール化だな。

グレースケール?

まぁ、白黒画像にするってことだな。

折角カラーになってるものを白黒にしちゃうの?

画像処理に於いて、
白黒は1チャンネル。
カラーは3チャンネル。
白黒で出来たことは、カラー時には同じことをRGBそれぞれのチャンネルに実施すればOKなんだよね。

つまり、グレースケールで何かしら画像処理ができることが確認が取れれば
同じことRGBそれぞれにやっていまうだけでOK。
だから、お試しの段階ではグレースケールにしておいた方が分かりやすいってことか。

そうそう。
グレースケールの種類

で、グレースケールにするにはどうするの?
それぞれの環境にグレースケールに変換するようなライブラリがある感じ?

ライブラリはあるが、今回は使用しない予定だ。

ということはガチで何かしら演算をするってことか・・・。

演算と言っても大したことはしないけどね。
問題はグレースケールにもいくつか種類があって、その種類を認識した上で適切なものを選択する必要がある。
と言っても、大体一択にはなるんだけど。

どういう種類があるの?

RGB平均、CIE規格、SDTV規格、HDTV規格、Gチャンネルってのが有名どころかな。
それぞれのRGBに対しての補正値を示したがこの表になる。
グレースケール種別 | R | G | B | 備考 |
---|---|---|---|---|
RGB平均 | 0.3333 | 0.3333 | 0.3333 | |
CIE規格 | 0.2126 | 0.7152 | 0.0772 | 国際照明委員会 |
SDTV規格 | 0.2990 | 0.5870 | 0.1140 | 標準画質テレビ |
HDTV規格 | 0.2126 | 0.7152 | 0.0722 | 高精細テレビ |
Gチャンネル | 0.0000 | 1.0000 | 0.0000 | Gのみ抽出 |

RGB平均以外は、Gが強めでBが弱めって感じか。
なんでこんな感じになってるんだ?

諸説あるが、人間の目は緑を強く感じるらしい。
よって、グレースケールにした際は、Gの成分を強めに残した方が、カラー時の印象に近いようだな。

なるほど。
人間の感覚に合わせてるのね。

で、結局どれを使うの?

OpenCV等のライブラリはSDTV規格を使用しているらしい。
よって、我々もそれに則ってSDTV規格のグレースケールで進めるつもりだ。

まぁ、よく使われてるものに合わせておいた方が良いよね。
係数が違うだけだから、もし変える必要があってもそれほど困らなそうだけど。
まとめ

まとめだよ。
- 画像処理の実験をする際はグレースケールにしておくのが一般的。
- カラー(RGB)の際は各チャンネルに対して同じ処理をすれば良い。
- グレースケールにも種類がある。
- SDTV規格が一般的らしい。
バックナンバーはこちら。
コメント