情報系大学生のプログラミング

【Python】計算式を用いてグレースケール画像を生成する方法

画像処理をしていて、グレースケール化をすることが多いと思いますが、どのようにして画素値が計算されているのかが気になったのでまとめてみました。

一言でグレースケール化といっても、様々な規格があるらしく、今回は、その中でも最も一般的であるかなと思っているテレビジョン放送でのグレースケール化規格に基づく方法で行っていきます。

関連:Pythonで画像のRBG・HSV色空間の値を取得しExcelに出力する方法

プログラミングでお悩みではありませんか?

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

プログラミングを学びたい人におすすめのスクール5選!

計算式

(R, G, B) = (Red, Green, Blue)です。

VはHSVの「V」で、Value(明度)のことですかね。

$$V = 0.30 R + 0.59G + 0.11B$$

この計算式をもとに、画素値を求めた結果が右側の画像です。
これが、昔のモノクロテレビですね。

元画像日本のアナログ放送
colorsgray
引用元

プログラムの作成

環境は、「google colaboratory」です。

実行結果

元画像(左)と、先ほどのプログラムを実行した後の出力画像(右)を比較してみます。

nano
bird

先ほどのプログラムを実行した結果(左)と、モジュールを用いた方法でグレースケール化を行った画像(右)です。最初にも書きましたが、グレースケール化には、様々な規格が存在するため、多少見た目に違いが出てきます。

bird
bird

目視で確認したところ、右側の画像のほうが若干白っぽかったです。

まとめ

今回は、カラー画像を計算式を用いてグレースケール化にする方法を記述しました。

見た目に違いはほとんどありませんが、今回用いた「cv2」には、簡単にグレースケール化できるので、わざわざ計算式を調べる必要はありませんよ^_^

そして、処理速度もOpenCVを使ったほうが圧倒的に早いので、積極的にモジュールを利用していきましょう。

プログラミングでお悩みではありませんか?

こちらで紹介しているスクールは、すべて無料期間がある優良なスクールのみで、特徴を明確にし、読者のニーズに絞って丁寧に解説しました。初めての一歩として、無料説明会に参加してみてください。

プログラミングを学びたい人におすすめのスクール5選!

パソコン操作にお困りではありませんか?

ExcelやWordなど、基本的なソフトの使い方がいまいちわからないという方には、「PCHack」という講座をオススメしています。スクールの中でもコストパフォーマンスに優れ、オンラインだからどこでも好きな時間に学習できます。

3万円ほどでPC初心者を脱出したい方は参考にしてください。

【PC初心者必見!】パソコンの勉強方法が分からないならPCHack講座がオススメ!

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA