RGB画像のチャンネル分割 cv2.split()
今回はカラー画像をRGB(Red、Green、Blue)の3チャンネルに分割する手法を紹介します。 開発環境はjupyter notebook、言語はpython3系です。 今回使用した画像・コード一式は google drive に保存しておりますので、必要に応じてお使いください。 作成したコード import cv2 import glob import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import ImageGrid import numpy as np %matplotlib inline filename = glob.glob("img/pure_color.PNG") for files in filename: img = cv2.imread(files) Blue,Green,Red = cv2.split(img) cv2.imwrite("img/Blue.png",Blue) cv2.imwrite("img/Green.png",Green) cv2.imwrite("img/Red.png",Red) このコードを実行することで、トップ画像のように、画像を赤、青、緑の3つのチャンネルに分割することができます。 処理の解説 概要 今回のポイントは、 Blue,Green,Red = cv2.split(img) です。 この処理では、cv2.split()の括弧内にカラー画像を読み込んだ結果であるimgを代入しています。 これによって引数として画像のR, G, Bの3つの数値が出てくるので、変数Blue, Green, Redに格納しています。 ここで注意したいのは変数の順番をRGBではなくBGRにすることと、imgにはカラー画像を用いるということです。 cv2.cvtColor()等でグレースケールにした画像をcv2.split()に入れると、画像のチャンネル数が1チャンネルしかないため、エラーになります。 RGBへの分割とは チャンネル分割の処理の基礎知識について紹介します。 デジタル画像...