前回に続いてOpenCVを使用方法について、今回は画像のトリミング、RGB情報の取得について紹介したい。
1. 画像読み込みまで
今回は以前撮影した源平桃の画像を使用する。
Google Colabにアップロードした画像は前回と以下の同じコードで読み込み、表示させる。
import cv2 orig = cv2.imread(uploaded_file_name) src = cv2.cvtColor(orig, cv2.COLOR_BGR2RGB) from matplotlib import pyplot as plt import numpy as np plt.imshow(src)
2. 画像のトリミング
画像のトリミング(切り取り)は、画像を読み込んだsrc
の配列のアドレスを用いればよい。例えば縦150-350, 横250-450で花のつぼみ付近を切り出すには
trim_src=src[150:350,250:450] plt.imshow(trim_src)
実行結果は以下のようになる。
3. RGB情報の取得
画像のRGB情報は読み込んだsrc
の画素アドレスを指定すると、RGBの各値を取得することができる。
px = src[200,415] print(px) >[128 59 64]
さらに画素アドレスに続いて、0,1,2のいずれかを指定するとR,G,Bの値が得られる。
px_red=src[200,415,0] print(px_red) >128
画像全体のRGBそれぞれの強度を得るにはcv2.split()
を用いる。以下のコードはsplit()
により得られた各RGBの強度を表示する
r,g,b = cv2.split(src) plt.figure(figsize=(10,4)) plt.subplot(1,3,1) plt.imshow(r) plt.subplot(1,3,2) plt.imshow(g) plt.subplot(1,3,3) plt.imshow(b)
なおsplit()
によりr,g,bに分割されたRGB強度分布をmerge()
を用いて結合すると元の画像に戻る。
4. まとめ
今回はOpenCVを用いて画像のトリミング、RGB情報の取得に関する方法を紹介した。