hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

グレースケールで表示する

◉グレースケールを使う理由

グレースケールは、カラー画像から色の情報(RGB)を捨て、

明るさの度合いだけで表現する。

画像から特徴を見つける場合、

ポイントとなる境界や輪郭は、色情報よりも明るさの違いの方が

コンピュータにとっては判断が簡単。

 また、色情報はRGBの3つの情報(3チャンネルと呼ぶ)を持たないと

いけないが、グレースケールだと、明るさ(輝度)の情報のみで良い。

3チャンネルが1チャンネルになることで、

コンピュータが扱う情報量を減らすことができ、

スピードアップにもつながる。

そのため、画像検出の前処理で、グレースケールを使うことが多い

 

◉画像をグレースケールにする方法

cv2.cvtColor(画像, 変換させる方法)

 ⚫︎画像:グレースケールにしたい画像

 ⚫︎変換させる方法:グレースケールなので、「cv2.COLOR_RGB2GRAY

 

<画像をグレースケールにするPythonコード例>

import sys

import cv2

if len(sys.argv)<2:

    print('表示したいファイル名を指定してください。')

    sys.exit()

file = sys.argv[1]

try:

    img = cv2.imread( ' file ' ) 

    if img is None:

         raise ValueError('ファイルが見つかりません')

    img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)

    cv2.imshow(file, img_gray)

    cv2.waitKey(0)

    cv2.destroyAllWindows()

except ValueError as e:

    print(e)

except:

    import traceback

    traceback.print_exc()