画像のグレースケール変換について解説していきます。
目次
画像 グレースケール変換(白黒)
ここでは、opencv
のcvtColor
を使って画像をグレースケールに変換していきます。
こちらのサンプル画像をグレースケールにします。
import cv2
# 画像の読み込み及びチャネル数確認
image = cv2.imread('./color_image.jpg')
print(image.shape)
# (1066, 1600, 3)
# 変換及びチャネル数確認
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
print(gray_image .shape)
# (1066, 1600)
# 出力
cv2.imwrite('./gray_image.jpg', gray_image )
出力画像(gray_image.jpg)はこちらです。
cv2.imread()
でオプションにcv.IMREAD_GRAYSCALE
を指定することでグレースケールで読み込むことも可能です。
しかしながら、cv.IMREAD_GRAYSCALE
のグレースケール変換はコーデックの処理に依存するため、cvtColor
でカラーからグレースケールに変換した値と変わる可能性があります。
つまり、使っているプラットフォーム(Windows/Linux/Mac)によって処理結果が変わるため、cvtColor
で処理を統一した方が良いです。
そのため、上記のcvtColor
を使って変換する方法を推奨します。