OpenCV、Pillowそれぞれでグレースケール変換
前回までは画像の回転について書いていきましたが、今回は色調についても触れていきたいと思います。 単純な画像はPillowの方が使いやすいのですが、今後機械学習などを使うことを考えるとOpenCVの使い方も覚えた方がよいと思いますので、両方のやり方を記述していこうと思います。
OpenCVを使う方法
コードの紹介
# インポート import cv2 # 画像ファイルの読み込み img = cv2.imread("Lenna.jpg") # グレースケールに変換 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 読み込んだ画像の出力。 cv2.imshow('Lenna_gray', img_gray) # 何かのキーを入力待ちする。64bitのマシンの場合は「& 0xFF」が必要らしい cv2.waitKey(0) & 0xFF # ウィンドウを閉じる cv2.destroyAllWindows()
出力結果
その他の画像変換
VS Codeでcv2.color_bgrと打つと、候補がいろいろと出てきます。 いろいろな変換ができるようですが、この辺りはまだ無知なので割愛。。
少し解説
BGR2xxxはBGR(青、緑、赤)の色調をxxxに変える、という意味になります。BGR2GRAYであればBGRをグレースケールに変換、という意味です。 ここで注意なのは、OpenCVはRGBではなくBGRが基本になります。一般的にはRGBが多いので、少し厄介ですね。
Pillowを使う方法
コードの紹介
# インポート Pillow(PIL)の中のImageモジュールを使う from PIL import Image # 画像ファイルの読み込み img = Image.open("Lenna.jpg") # グレースケールに変換 img_gray = img.convert('L') # 表示 img_gray
出力結果