Python 実践 データ加工/可視化 100本ノック に挑戦 ノック63

ノック63 : 画像データを切り出してみよう

 

import cv2
img = cv2.imread('data/sample.jpg')
img_extract = img[700:1200,300:800,:]

cv2.imshow('resize image',img_extract)
cv2.waitKey(0)
cv2.destroyAllWindows()

 

700から1200、300から800の範囲でデータを切り抜きます。

 

700:1200,300:800

 

 

元データはこんな画像です。

この画像の日照り上に数字の8と書かれたボード部分を切り取りました。

sample.jpg

 

次に、以下のように変更して表示します。本の内容ではcv2_imshow(img_extract[:,:,0])と

google colab用の関数なので、同じ結果かわかりませんが、全体的に黒色で表示されました。

 

cv2.imshow('resize image',img_extract[:,:,0])
cv2.waitKey(0)
cv2.destroyAllWindows()

 

 

[:,:,0]

 

引数0を1に変えてみると、芝生が白っぽく表示されました。

緑色の値を抽出する場合に1を設定すると本には書かれています。

 

cv2.imshow('resize image',img_extract[:,:,1])
cv2.waitKey(0)
cv2.destroyAllWindows()

 

[:,:,1]

 

最後の引数が0で青色抽出、1で緑色抽出、2で赤色抽出をおこなっています。

もっとシンプルな画像で確認してみます。

 

RGB

 

この画像に対して色の抽出をおこなってみます。

まずは[:,:,0]を実行して青検出結果です。

次に緑([:,:,1])

最後に赤([:,:,2])

 

というわけで、抽出したい色の部分が白く表示されることがわかりました。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/* -----codeの行番号----- */