PythonとOpenCVで画像をグレースケールに変換してみた

PythonとOpenCVを使って、jpeg画像をグレースケールに変換してみました。

目次

  1. 手順
  2. cvtColor()関数
  3. 試してみた

手順

至って単純です。

  1. 画像をファイルから読み込み。
  2. グレースケールに変換。
  3. 変換した画像を保存。

cvtColor()関数

イメージの色空間を変換します。

dst = cv2.cvtColor(src, code)
変数 説明
dst numpy.ndarray 変換後のイメージ。
src numpy.ndarray 変換前のイメージ。
code 列挙型 変換内容を示す列挙型の値。

何から何に変換するかは、codeのところで指定します。

グレースケールの場合はcv2.COLOR_RGB2GRAYです。いくつか種類があります。

試してみた

こういう画像を、グレースケールに変換してみました。

image0

コードはこんな感じです。

import cv2

img = cv2.imread('original.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
cv2.imwrite('gray.jpg',gray)

cv2がopencv-pythonのモジュールです。cv2ですが、OpenCVのバージョンは3.xだったりします。

できあがったファイルはこんな感じです。

image1

試した環境は、Python3.6、opencv-python3.3.0.10です。

広告

Pythonで画像処理カテゴリの投稿