MATLAB,Python,Scilab,Julia比較 第3章 その9【グレースケール①】

MATLAB,Python,Scilab,Julia比較 第3章 その9【グレースケール①】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その9【グレースケール①】

バックナンバーはこちら。
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に対しての補正値を示したがこの表になる。

グレースケール種別RGB備考
RGB平均0.33330.33330.3333
CIE規格0.21260.71520.0772国際照明委員会
SDTV規格0.29900.58700.1140標準画質テレビ
HDTV規格0.21260.71520.0722高精細テレビ
Gチャンネル0.00001.00000.0000Gのみ抽出
太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

太郎くん
太郎くん

で、結局どれを使うの?

フクさん
フクさん

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

太郎くん
太郎くん

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

まとめ

フクさん
フクさん

まとめだよ。

  • 画像処理の実験をする際はグレースケールにしておくのが一般的。
    • カラー(RGB)の際は各チャンネルに対して同じ処理をすれば良い。
  • グレースケールにも種類がある。
    • SDTV規格が一般的らしい。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました