【OpenCV】検出した顔画像部分を切り出す方法【Python】
OpenCV を使って、Python で画像の中から顔部分を切り出したときのメモです。
顔部分の検出については、以前に記事にまとめたので、よかったら参考にしてください。
【OpenCV】画像の顔部分を検出する方法【Python】
今回は、検出した顔部分を切り取って、保存します。
用いた画像は、前回同様「Lenna」を使っています。
OpenCV での画像の x座標, y座標の表し方を簡単にまとめます。
画像の左上の頂点座標を(0, 0)とし、横(右)にいくほど x座標の値が大きくなり、縦(下)にいくほど y座標の値が大きくなります。
座標値は全て正の値となります。
出典:https://qiita.com/sino20023/items/ec7e0ac77547f3b6484b
画像の切り出す範囲は、img[]メソッドを使って、x軸とy軸それぞれ指定します。
「:」は範囲を指定する「~」に置き換えると意味が分かりやすくなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import cv2 # カスケード分類器の読み込み face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # イメージファイルの読み込み img = cv2.imread('lena_std.tif') # 顔を検知 face = face_cascade.detectMultiScale(img) # [[217 201 173 173]] print(face) # 検出した顔部分を切り出す for(x, y, w, h) in face: trim = img[y:y+h, # y軸の範囲 x:x+w] # x軸の範囲 # 切り取り処理後の画像を保存 cv2.imwrite('face_01.jpg', trim) # 検出処理後の画像を別ウィンドウで表示 cv2.imshow('face01', trim) # これがないと「応答なし」になってしまう cv2.waitKey(0) cv2.destroyAllWindows() |
実効結果は、以下のようになります。
関連記事
-
-
【Python】Windows で ライブラリ(NumPy) をインストールする方法。
Windows の Python(2.X系)で NumPy をインストールしようと思ったら、そもそも
-
-
【Pandas】 loc・ilocで1行のみ Series ではなく DataFrame で抽出する方法。
Python の Pandas で DataFrame から loc や iloc を使って行を抽出
-
-
【Python】API を使って Amazon の商品情報を収集する方法。
AmazonAPI ライブラリをインストール 以下のコマンドで python-amazon-sim
-
-
【Pandas】 DataFrame の行を抽出する方法【Python】
今回は、Python の Pandas で、DataFrame 型の行を抽出する方法を紹介します。
-
-
【Python】機械学習のために SciPy・Matplotlib・scikit-learn をインストール。
Python で機械学習を行うために、Windows OS の python 2 系にライブラリ「S
-
-
【Pandas】 DetaFrame の列ごとに演算する方法【Python】
今回は、DetaFrame の列ごとに平均や加算・減算なのど演算をし、結果を DetaFrame 型
-
-
【Python】OpenCV を使って顔画像を検出してみた。
OpenCV のインストール Numpy のインストール [crayon-681334d96
-
-
【matplotlib】 Python でヒストグラムの横軸と棒(ビン)の数を調整する方法。
Python の matplotlib を使ってヒストグラムを描画し、横軸の目盛りと棒(ビン)がそろ
-
-
【OpenCV】画像の顔部分を検出する方法【Python】
OpenCV を使って、Python で画像から顔部分の検出を行ったときのメモです。 Anac
-
-
python 2.7 を Windows 64bit OS にインストールした。
python 2.7 を Windows にインストールしたときのメモです。 Python に