とある理系院生の勉強日記

モチベーション維持用兼備忘録

OpenCVで画像の画素をいじる

1 画像を読み込む

2 split()関数で画像のチャンネルの分割を行う

3 merge()関数でBGRをいじる

 

OpenCVはBGRの順にカラーが並ぶためsplit()関数でカラー画像のチャンネルを分割した際には配列の[0]が青、[1]が緑、[2]が赤となる。

 

以下サンプルプログラムは青を赤に、赤を青に変更している

 

# -*- coding: utf-8 -*-

import cv2

img = cv2.imread("lena.jpeg")

#チャンネルの分割
img_bgr = cv2.split(img)

#BGR→RGB
changed_img = cv2.merge( (img_bgr[2], img_bgr[1], img_bgr[0]) )

cv2.namedWindow("lena")
cv2.namedWindow("changed_lena")

cv2.imshow("lena", img)
cv2.imshow("changed_lena", changed_img)

#cv2.imwrite("changed_lena.jpeg", changed_img)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

変更した結果は以下の通り。

 

f:id:youthtia:20171013021402j:plain